Javascript 我收到一个引用错误:未定义html
我是Node.js新手,这是我第一次使用Node.js。当我尝试连接index.html文件时,我遇到了“ReferenceError:html未定义”错误。 这是我的index.js代码Javascript 我收到一个引用错误:未定义html,javascript,json,node.js,npm,Javascript,Json,Node.js,Npm,我是Node.js新手,这是我第一次使用Node.js。当我尝试连接index.html文件时,我遇到了“ReferenceError:html未定义”错误。 这是我的index.js代码 var http = require('http'); var fs = require('fs'); var port = 3030; var host = '127.0.0.1'; fs.readFile('index.html', (err,html)=>{ if(err){
var http = require('http');
var fs = require('fs');
var port = 3030;
var host = '127.0.0.1';
fs.readFile('index.html', (err,html)=>{
if(err){
throw err;
}
});
var server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader('Content-type','text/plain');
res.write(html);
res.end();
});
server.listen(port,host,() =>{
console.log('Server started with port: '+port);
});
这是我的index.html代码
`<html>
<body>
<h1>Node JS</h1>
</body>
</html>
如果有人能告诉我为什么会犯这个错误,我错过了什么,那就太好了。
谢谢在node js中,您的服务器试图在从磁盘读取文件之前返回该文件。这是node js回调的基本性质
var server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader('Content-type','text/plain');
fs.readFile('index.html', (err,html)=>{
if(err){
throw err;
}
res.write(html);
res.end();
});
});
您应该考虑到nodejs经常使用异步调用,您的代码也是如此
fs.readFile('index.html', (err,html)=>{
if(err){
throw err;
}
console.log(html); // html works here
});
console.log(html); // html is undefined here
这应该行得通
fs.readFile('index.html', (err,html)=>{
if(err){
throw err;
}
var server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader('Content-type','text/plain');
res.write(html);
res.end();
});
server.listen(port,host,() =>{
console.log('Server started with port: '+port);
});
});
另一方面,我不建议像这样编写服务器,除非出于学习目的。有现成的基于nodejs的框架,可以让编写一个好的web服务器省去很多麻烦,比如或在服务器块的范围内没有定义html
html
变量在代码中没有定义。如果你只想发送字符串,请引用它-“html”请阅读。是的!我错过了。谢谢:)非常感谢。这帮了大忙!!
fs.readFile('index.html', (err,html)=>{
if(err){
throw err;
}
var server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader('Content-type','text/plain');
res.write(html);
res.end();
});
server.listen(port,host,() =>{
console.log('Server started with port: '+port);
});
});