Node.js 加载主页后服务器关闭(本地)
我无法理解如何以及在何处使用response.end()。当我只加载一个响应时,它就工作了,但是当我尝试加载(比如)两个html文件(在我的例子中是索引和表单)时,服务器不加载任何东西。 如果我在加载索引html后放入res.end(),它会工作,但服务器会关闭Node.js 加载主页后服务器关闭(本地),node.js,Node.js,我无法理解如何以及在何处使用response.end()。当我只加载一个响应时,它就工作了,但是当我尝试加载(比如)两个html文件(在我的例子中是索引和表单)时,服务器不加载任何东西。 如果我在加载索引html后放入res.end(),它会工作,但服务器会关闭 var http = require('http'); var formidable = require('formidable'); var url=require('url'); var path=require('path');
var http = require('http');
var formidable = require('formidable');
var url=require('url');
var path=require('path');
var fs=require('fs');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
filepath=path.join(__dirname,'index.html');
fs.readFile(filepath,null,function(err,data){
if(err){
res.writeHead(404);
res.write(err+" Error");
}
else{
res.write(data);
}
res.end();
});
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req, function () {
res.write('File uploaded');
res.end();
});
} else {
var q=url.parse(req.url,true);
var filename=path.join(__dirname,q.pathname);
console.log(filename);
fs.readFile(filename,function(err,data){
if (err) {
res.writeHead(404);
res.write(err+"404 Not Found");
}
else{
res.write(data);
}
res.end();
})
}
}).listen(8080);
关于改进代码的其他技巧非常受欢迎:)您能解释一下使用end()时会发生什么吗?如果使用end(),我们就不能再使用write()。
var http = require('http');
var formidable = require('formidable');
var url = require('url');
var path = require('path');
var fs = require('fs');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req, function () {
res.write('File uploaded');
res.end();
});
} else if (req.url.length > 1) {
var q = url.parse(req.url, true);
var filename = path.join(__dirname, q.pathname);
console.log(filename);
fs.readFile(filename, function (err, data) {
if (err) {
res.writeHead(404);
res.write(err + "404 Not Found");
}
else {
res.write(data);
}
res.end();
})
} else {
filepath = path.join(__dirname, 'index.html');
fs.readFile(filepath, null, function (err, data) {
if (err) {
res.writeHead(404);
res.write(err + " Error");
}
else {
res.write(data);
}
res.end();
});
}
}).listen(8080);