node中fs模块

node引用fs模块,异步读取文件:

'use strict'
var fs =require('fs');

fs.readFile('example.txt','utf-8',function(err,data) {
if (err) {
console.log(err)
}else{
console.log(data)
}
})

node引用fs模块,异步读取二进制文件(图片):

fs.readFile('add_func.png',function(err,data) {
if (err) {
console.log(err)
}else{
console.log(data)
console.log(data.length+'bytes')
}
})

当读取二进制文件,不传入文件编码时,回调函数的data参数将返回一个buffer对象,在node中buffer对象就是一个包含零个或任意个字节的数组(注意:和Array不一样),buffer对象可以和string转换。

data.toString('utf-8');
Buffer.from(aa,'utf-8')


fs同步读取文件:

var dataSync =fs.readFileSync('add_func.png','utf-8')
console.log(dataSync);
try{
var data_ =fs.readFileSync('add_func.png','utf-8')
console.log(data_)
}catch(error){
console.log(error)
}

fs写入文件:

var data_write ='hello nodeJs456';
fs.writeFile('write.txt',data_write,function(err) {
if (err) {
console.log(err)
}else{
console.log('ok')
}
})

fs同步写入文件:

fs.writeFileSync('write.txt',data_write+'123');

如果我们要获取文件的大小、创建时间等信息,可以使用fs.stat(),返回一个stat对象,包含文件详细信息

fs.stat('write.txt',function(err,stat) {
if (err) {
console.log(err)
}else{
console.log(stat.isFile())
}
})

在fs模块中提供同步方法是为了方便使用,但是由于node环境执行的javascript代码是服务端代码,绝大部分是在服务器运行时期需要反复执行的业务逻辑代码,所以必须使用异步,否则同步代码执行期间,服务器将停止响应。

服务器启动时读取配置文件或者,服务器结束时需要写入状态文件,可以用同步代码,因为只在启动和结束执行一次,所以不影响。

在 Vue.js (版本2) 中,Node.js 的 `fs` 模块主要用于文件系统操作,如读取、写入、删除文件等。要在 Vue 组件中使用它,你需要在 Node 环境下编写服务端代码(通常用 Express 或其他框架),而是直接在浏览器中。 以下是一个简单的步骤: 1. **引入 fs 模块**: 在你的 Node.js 服务器端代码(例如一个 `.js` 文件)里,首先导入 `fs` 模块: ```javascript const fs = require('fs'); ``` 2. **读取文件**: 使用 `fs.readFile()` 或 `fs.promises.readFile()` 来读取文件内容,这在服务器启动时或需要预加载数据时很有用: ```javascript const readFile = async (filePath) => { try { const data = await fs.promises.readFile(filePath, 'utf8'); // 以 utf8 编码读取 return data; } catch (err) { console.error(`Error reading file: ${err}`); } }; ``` 3. **写入文件**: 可以用 `fs.writeFile()` 或 `fs.promises.writeFile()` 来保存数据到文件: ```javascript const writeFile = async (filePath, content) => { try { await fs.promises.writeFile(filePath, content, 'utf8'); console.log('File saved successfully'); } catch (err) { console.error(`Error writing to file: ${err}`); } }; ``` 4. **Vue 组件中的调用**: 如果你有一个 Vue 面向服务端的组件,可以在 mounted 或生命周期钩子里调用上述函数,比如通过 Axios 发送 HTTP 请求到 Node 服务器来处理文件操作。 ```javascript export default { data() { return { filePath: '/path/to/file', }; }, created() { this.readFile(); }, methods: { readFile() { this.$axios.post('/read-file', { filePath: this.filePath }).then(response => { // response.data 含文件内容 }); }, writeFile(newContent) { this.$axios.post('/write-file', { filePath: this.filePath, content: newContent }).then(() => { console.log('File written'); }); }, }, }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值