簡體   English   中英

node.js-否則-res.end()的字符串

[英]node.js - if else - string for - res.end()

我的index.js(昵稱:1.js)

var http = require('http');
var url = require('url');
var mysql = require('mysql');

var Memcached = require('memcached');
var memcached = new Memcached('localhost:11211');

var connection = mysql.createConnection({
    host     : '-----------',
    user     : '2',
    password : '----------',
    database : '1'
});

connection.connect();


var server=http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'});

    try{
    var o = require('/2.js')
    } catch (err){
    var o = '0'
    }

    if (o == '0'){
        o = 'page not found'
    }else{
         o.makeQuery(connection, function(err, result){
             if(err) return res.end(err);
             o = result
         });
    }

    res.end(o)

}).listen(80);

我的/2.js

exports.makeQuery = function(connection, callback) {

  var queryString = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5';

  connection.query(queryString, function(err,res,fields){
    if (err) {return callback(err)};

    bb = JSON.stringify(res);
    callback(null, bb);
  });
}

錯誤:

root@11669:/# node 1.js
_http_outgoing.js:524
    throw new TypeError('first argument must be a string or Buffer');
    ^

TypeError: first argument must be a string or Buffer
    at ServerResponse.OutgoingMessage.end (_http_outgoing.js:524:11)
    at Server.<anonymous> (/1.js:38:6)
    at emitTwo (events.js:87:13)
    at Server.emit (events.js:172:7)
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:528:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
root@11669:/# 

問題位於index.js(1.js)末尾的某個地方
在“其他”聲明之后。

不知道如何糾正它。

我不相信其他任何地方都有沖突。
2.js應該沒問題。

更新:
我將其加載到網絡發生了錯誤

您正在1.js中使用異步函數makeQuery,因此應在完成makeQuery函數后將數據傳遞給瀏覽器。 嘗試這個

if (o == '0'){
    o = 'page not found';
    res.end(o);
}else{
     o.makeQuery(connection, function(err, result){
         if(err) return res.end(err);
         o = result;
         res.end(o)
     });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM