Dan*_*Fox 51 javascript node.js
我想用nodejs加载test.txt.
var fs = require('fs');
fs.readFile('./test.txt', function (err, data) {
if (err) {
throw err;
}
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
服务器的路径是C:\server\test\server.js.test.txt位于同一目录中,但是我收到此错误:Error: ENOENT, no such file or directory 'C:\Users\User\test.txt'
Rob*_*b W 68
Node中的路径相对于当前工作目录进行解析.在路径前加上__dirname解析Node脚本位置的路径.
var fs = require('fs');
fs.readFile( __dirname + '/test.txt', function (err, data) {
if (err) {
throw err;
}
console.log(data.toString());
});
Run Code Online (Sandbox Code Playgroud)
Mic*_*ole 10
使用Node 0.12,现在可以同步执行此操作:
var fs = require('fs');
var path = require('path');
// Buffer mydata
var BUFFER = bufferFile('../test.txt');
function bufferFile(relPath) {
return fs.readFileSync(path.join(__dirname, relPath)); // zzzz....
}
Run Code Online (Sandbox Code Playgroud)
fs是文件系统. readFileSync()如果你问的话会返回一个Buffer或string.
fs正确假设相对路径是一个安全问题. path是一种解决方法.
要作为字符串加载,请指定编码:
return fs.readFileSync(path,{ encoding: 'utf8' });
Run Code Online (Sandbox Code Playgroud)
您应该使用__dirname获取文件所在的目录名而不是当前工作目录:
fs.readFile(__dirname + "/test.txt", ...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67855 次 |
| 最近记录: |