我对节点js和快速框架有疑问。
我想在服务器代码中执行以下操作:
这是我的服务器代码的简化版本:
app.js:
var express = require('express');
var routes = require('./routes');
var about = require('./routes/about');
var user = require('./routes/user');
var contact = require('./routes/contact')
var http = require('http');
var path = require('path');
var cors = require('cors');
var app = express();
....
app.get('/', routes.index); //<---currently this is handled in index.js, in function index.
index.js:
exports.index = function(req, res){
//xmlhttprequest 1 // <--- send xhr 1
//process data
//xmlhttprequest 2 // <--- send xhr 2
};
我收到消息Cant send headers after they are sent
。我阅读了快速文档,并发现当我们在发送请求后尝试修改标头时会发生这种情况。我还读了一些关于中间件和路由的内容。但是文档对我来说并不清楚。
有人能指出理想的做法是什么吗? 我可以处理具有相关信息的链接。我是表达和节点js的新手。
编辑: 更多细节:
用户位于我的网站foo /.
他输入了一些细节,根据我的第一个细节 XMLHttpRequest的。
答案 0 :(得分:1)
如果您要发送两个不同的XHR
个请求,则需要为其定义两个不同的路由:
app.get('/XHR1', routes.xhr1);
app.get('/XHR2', routes.xhr2);
您获得Can't send headers after they are sent
的原因是因为您正在回复客户端(可能通过res.send(200)
,full list之类的内容,然后尝试回复客户端再次。每次通话只能回复一次。