【发布时间】:2015-08-20 00:48:03
【问题描述】:
我使用以下代码从我的桌面读取简单文件
module.exports = function (app) {
app.get('/aa', function(req, res) {
fs = require('fs');
fs.readFile('C:\\Users\\t56789\\Desktop\\myfile.txt', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log(data);
res.send(data);
});
});
当我在浏览器中点击 /aa 时出现以下错误
{ [Error: ENOENT, open 'C:\Users\t56789\WebstormProjects\Ro0.1\?C:\Users\t56789\Desktop\myfile.txt']
errno: -4058,
code: 'ENOENT',
path: 'C:\Users\t56789\WebstormProjects\Ro0.1\?C:\Users\t56789\Desktop\myfile.txt' }
如果我返回 res.send("test") 我可以在浏览器测试中看到...
知道我在这里想念什么吗?
【问题讨论】:
-
您正在运行一个网络服务器。 web服务器的根目录就是它运行所在的目录,不能直接读取C:盘。您只能读取该根目录中的内容。
-
@JeremyThille-运行 Web 服务器(快递?)是什么意思,如果有其他方法可以做到吗?我对nodeJS相当陌生...
-
嗯,NodeJS 是一个 Web 服务器……就像 Apache。如果从
c:/myWebsite运行它,Node 将只能读取c:/myWebsite中的内容。只有您网站的文件,而不是整个磁盘。除非我弄错了。 -
使用路径模块根据您的操作系统要求规范化路径。并阅读这篇文章:shapeshed.com/writing-cross-platform-node
-
我想是的。因为网络服务器不能拒绝你访问上面的文件(它是文件系统工作)它是根目录,特别是如果你正在使用你的用户已经是根目录的窗口(:
标签: javascript jquery node.js express