节点js - 抛出新的错误('发送后无法设置标题');
问题描述:
我得到了像标题一样的错误。 以下是我的代码。请你能有人给我建议吗?节点js - 抛出新的错误('发送后无法设置标题');
我想我只发送一次'app.get' 我想划分index.html和splash.html的大小写。 在回应之前,我想延迟1秒。
app.use(delay(1000));
app.get('/index.html', function(req, res) {
var pathName = req.url;
console.log('!!!!!!!!!!!');
console.log(pathName);
fs.readFile(__dirname + '/views/index.html', function(error, data) {
console.log(__dirname);
if(error){
console.log(error);
} else {
console.log("load html");
console.log(req.url);
csp.add(req, res, options);
res.render(__dirname + '/views/index.html');
res.end();
}
});
});
app.get('/splash.html', function(req, res) {
var pathName = req.url;
console.log('!!!!!!!!!!!');
console.log(pathName);
fs.readFile(__dirname + '/views/splash.html', function(error, data) {
console.log(__dirname);
if(error){
console.log(error);
} else {
console.log("load html");
console.log(req.url);
csp.add(req, res, options);
res.render(__dirname + '/views/splash.html');
res.end();
}
});
});
答
实现此目的的最佳方法是使用rx
模块,请参阅下面的代码。响应在3秒后发送,这是我用于延迟的模块。
var app = require('express')();
const timeout = require('connect-timeout');
const Rx = require('rx');
// Response will be delayed for 3 seconds
app.get('/', function(req, res) {
Rx.Observable.create((observer) => {
observer.onNext({
response: 'potato'
})
observer.onCompleted()
})
.delay(new Date(Date.now() + 3000)) //setting it to 3 seconds
.subscribe((x) => {
console.log(x); //logs response: 'patato'
console.log('this runs');
res.status(200).send("3 seconds");
}, (e) => {
console.log('this does not');
})
});
app.listen(4000);
+0
谢谢你的回复:)我可以试试这个,没有问题! –
当你删除'app.use(delay(1000))'你还会得到同样的错误吗? – turmuka
不,我没有得到'延迟'的错误。但我想延迟使用快递。你认为这是问题吗? –