最初のリクエストは正常に機能しますが、別のリクエストの後にこのエラーメッセージが表示されます。私の論理は要求を二重にしませんが、各経路が別々に呼び出されないように見えます。node.js APIの応答が終了していません。「送信後にヘッダーを送信できません。」
/api/user
への最初のリクエストはうまくいきます。リフレッシュ後エラーが発生しましたCan't set headers after they are sent.
res.end()
エラーは発生しません。
res.send()
およびres.json()
およびres.header('Content-Type', 'application/json'); res.end();
は、リフレッシュ時にエラーを生成します。
別のAPIでres.json()
はうまく動作しますが、クラス/関数やEventEmitterは使用されません。多分問題はそこにありますか?
routes.js
route.get("/", function(req, res) {
user.on('error', function(err) {
res.status(400).send({code: 900, message: err, data: null});
});
user.on('success', function(result) {
res.status(200).send({code: 200, message: 'OK', data: result});
});
user.getAll();
});
user.jsの
var util = require('util');
var EventEmitter = require('events').EventEmitter;
var initialize = require(global.__base + "/config");
var db = initialize.db();
function User() {
var self = this;
this.get = get;
function _checkForErrors(error, rows, reason) {
if (error) {
self.emit('error', error);
return true;
} else if (reason) {
self.emit('failure', reason);
return true;
}
return false;
}
function _getData(error, rows) {
if (_checkForErrors(error, rows)) {
return false;
} else {
self.emit('success', rows);
return true;
}
}
function getAll() {
db.query("SELECT * FROM patient", _getData);
}
}
util.inherits(User, EventEmitter);
module.exports = User;
デシベルの初期化
module.exports = {
globalModules: function() { /*foo*/ },
db: function() {
var mysql = require('mysql');
var db = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'node_docx'
});
return db;
}
};
あなたのユーザールートを入力してください –