この質問は既に存在しますが、私が見つけた解決策はうまくいきませんでした。私はNode.jsの基本的な作成機能を構築しています。最初にオブジェクトがすでに存在するかどうかをチェックし、存在しない場合は作成します。すべての条件にelse if
とreturn
を追加しても、このエラーが発生します。しかし、それはすべてが関係なく実行されるようです。これは私のコードです:Node.jsエラー:送信後にヘッダーを設定できません
controllers/shop.js:
var Shop = require('../models/shop').model;
module.exports = {
create: function(req, res) {
if(typeof(req) != 'object')
return res.status(400).send({error: Error.InvalidInput});
if(req.body.name === null) return res.status(400).json({error: Error.missingParameter('name')});
Shop.findOne({name: req.body.name}, function(err, shop){
if(err) return res.status(500).json({error: Error.unknownError});
else if (shop) return res.status(409).json({error: Error.alreadyExists('Shop')});
}).exec(Shop.create({name: req.body.name}, function(err, shop) {
if (err) return res.status(500).json({error: Error.unknownError});
else if (shop) return res.status(201).json(shop);
else if (!shop) return res.status(400).json({error: Error.createFailed('Shop')});
}));
},
}
どのような応答が得られますか? – Sam
@Sam Error:ヘッダーを送信した後に設定することはできません。 – SalmaFG