繁体   English   中英

将数据从快速路由传递到节点模块 export function

[英]Pass data from express route into node module export function

我是 node 新手,我想我需要使用中间件,但我无法理解它的实际用途,或者它是否应该被使用。 我有从我的视图发布到快速路线的数据。

路线 - route.js

 var GetPlayer = require('./models/getPlayer.js'); module.exports = function(app) { app.post('/api/getPlayer', function(req, res) { //GetPlayer.apiGetPlayer(req.body.username); console.log(req.body.username); //this logs the correct data }); }

但现在我需要将该数据传递到节点 api 调用并将该响应发送回客户端。 但我无法获得调用 function 或将数据传递给它的路线。

MODULE.EXPORT - getPlayer.js

 module.exports = { apiGetPlayer: function(error, res) { console.log("in get player"); console.log(res); } }

如果您想对多个路由执行此操作(即使用body-parser将请求正文从 JSON 解析为实际 Object ),您只想使用 Express 中间件。 根据提供的代码,这似乎有点矫枉过正。 解决此问题的一种方法是仅获取用户名并将回调 function 传递给 getPlayer。 然后当传递给apiGetPlayer()的回调 function 返回时,根据apiGetPlayer()的结果回复请求者。

获取播放器.js

 module.exports = // callback is an error-first callback function apiGetPlayer: function(username, callback) { let err; let player; // Logic for getting player go here // If an error occurs return an error to the callback if (err) return callback(err, null); return callback(null, player); } }

/api/getPlayer 路由

app.post('/api/getPlayer', (req, res) => { GetPlayer.apiGetPlayer(req.body.username, (err, player) => { if (err) return res.status(500).send(err); return res.status(200).send(player); }); });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM