[英]Debugging node.js with Express Framework: Troubleshooting missing 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.