我编写了一个使用Node js"restify"框架的小API.此API接收请求(实际上是"/"之后的任何内容),然后将该请求发送到另一台服务器.从服务器获取响应并将响应传递回原始请求源.对于这个API我使用restify服务器和客户端.
以下是用于更好理解的API代码.
var apiServer = require('apiServer');
apiServer.start();
var restify = require('restify');
var assert = require('assert');
function onRequest(request, response, next)
{
var client = restify.createStringClient({
url: 'http://example.com'
});
client.get('/' + request.params[0], function(err, req, res, data) {
assert.ifError(err);
response.setHeader('Content-Type', 'text/html');
response.writeHead(res.statusCode);
response.write(data);
response.end();
});
next();
}
function start()
{
var server = restify.createServer();
server.get(/^\/(.*)/, onRequest);
server.listen(8888);
console.log("Server has started.");
}
exports.start = start;
Run Code Online (Sandbox Code Playgroud)
现在我需要知道Node.js response.write和之间的区别response.send.因为response.write我可以设置标题并在其中写入,但在使用时不能对标题执行任何操作response.send.当我用response.send用setHeader()还是writeHeader()我得到这个错误:
http.js:691
throw new …