节点js中的两个if语句

时间:2016-03-03 13:07:54

标签: javascript node.js

在下面的代码中,我想从链接中读取参数并显示它们。我使用两个单独的if语句来检查每个参数。问题是它只读取第一个if语句并丢弃第二个if语句(不检查第二个参数):

var http = require('http');
var url = require('url');
var server = http.createServer(function (request, response) {
  if (request.method == 'GET') {
    var queryData = url.parse(request.url, true).query;
    response.writeHead(200, {"Content-Type": "text/plain"});
    // if parameter is provided
    if (queryData.name) {
      response.end('Hello ' + queryData.name + '\n');
    } else {
      response.end("Hello World\n");
    }
    if (queryData.age) {
      response.end('Your age is ' + queryData.age + '\n');
    } else {
      response.end("No age provided\n");
    }
  }
});
// Listen on port 3000, IP defaults to 127.0.0.1 (localhost)
server.listen(8081);

链接是:

http://127.0.0.1:8081/start?name=john&age=25

2 个答案:

答案 0 :(得分:3)

请勿使用response.end。而是使用response.write并在两个if语句之后添加response.end()

请参阅文档:https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback

答案 1 :(得分:1)

在第一个response.write区块中尝试if