私は小さなリンク短縮アプリケーションを作成しています。これは、Express.js POST関数です。私は、新しいURLとデータベースの現在のドキュメント数でドキュメントを送信したいと思います。これは主に、各ウェブサイトが固有の短い番号に関連付けられていることを確認することです。node.jsの約束の中でどのようにres.sendするのですか?
app.post('/api/shorturl/new', (req, res) => {
var body = _.pick(req.body, ['url']); // url attached to body.url with lodash
Link.find({}).exec((err, res) => { // Link is a mongoose model
var count = res.length;
var newSite = new Link({ website: body.url, count });
newSite.save((err) => {
if (err) console.log(err);
})
res.send(newSite);
});
});
プログラムがres.send(newSite)になると、コンソールにはres.sendが関数ではないと表示されます。それは約束の中にあるからですが、私はそれを手に入れてコードを機能させる方法を本当に分かりません。送信する応答を取得するにはどうすればよいですか?
ありがとうございます!
'exec()' –
Ahaに渡されるコールバック関数の引数のうちの1つに同じ名前を使用して、正しい 'res'をシャドーイングしているからです。あなたが正しいです! –