gpt4 book ai didi

node.js - Node.js ENOENT错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:12 26 4
gpt4 key购买 nike

运行此代码给我这个错误,尝试找出一个小时后但失败

var http = require('http');
var url = require('url');
var fs = require('fs');
var port = 3010;

http.createServer(function(req, res){
var query = url.parse(req.url,true).query;
console.log(query);
var file = query.f + query.t;
//var file = "eurusd_m1.json";
console.log(file);
var eurusd;
fs.readFile('data/' + file + '_m1.json', function(err,data){
if (err){
console.log(err);
}
eurusd = JSON.parse(data);
console.log(eurusd);
});
res.writeHead(200,{'content-type':'text/plain'});
res.end("helllo owrld");
}).listen(port);

console.log("server running at port 3010..");

它给了我以下结果:

<小时/>
server running at port 3010..
{ f: 'eur', t: 'usd' }
eurusd
{}
NaN
{ [Error: ENOENT, open 'C:\Users\Administrator\Documents\zeromq\data\NaN_m1.json']
errno: 34,
code: 'ENOENT',
path: 'C:\\Users\\Administrator\\Documents\\zeromq\\data\\NaN_m1.json' }

undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at C:\Users\Administrator\Documents\zeromq\dataserver.js:17:17
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)
<小时/>

最佳答案

您看到的是客户端对 favicon.ico 的请求。这里执行了两个个请求(因此,您会看到日志两次)。浏览器会请求页面 favicon.ico 文件,该文件代表您在添加书签时看到的小图标,位于地址栏的左侧:)

您的问题出在 var file = query.f + query.t; - 这在您访问页面时有意义,但在浏览器隐式访问 favicon.ico 时没有意义。

您只是 console.log 错误而不是从中返回,这意味着您对未定义的值进行 JSON.parse - 这会引发规范中定义的语法错误(只需尝试打开控制台并在浏览器中输入 JSON.parse(window.x))

(当 ENOENT 尝试打开 "NaN_m1.json" 时,您可以看到这一点)

您可以在调用 url.parse 之前将其添加到服务器,但如果您打算使其更大 - 正确的路由可能会更好:

if (req.url === '/favicon.ico') {
r.writeHead(200, {'Content-Type': 'image/x-icon'} );
return r.end();
}

关于node.js - Node.js ENOENT错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com