我目前在一個Express的Node.js應用程序,所以定義的POST路線郵政快遞航線承諾:定義/使用上的node.js
var locationService = require("../app/modules/locationservice.js");
app.post('/createstop', isLoggedIn, function(req, res) {
locationService.createStop(res, req.body);
});
(此問題,請假設在路由&分貝的作品..我的記錄表單提交創建的,這是我掙扎)
在locationservice.js
類的響應,那麼我現在有
var models = require('../models');
exports.createStop = function(res, formData) {
models.location.build({ name: formData.name })
.save()
.then(function(locationObj) {
res.json({ dbResult : locationObj });
});
};
所以你可以看到,我的路線調用導出函數CreateStop
它使用Sequelize持久層異步插入一條記錄,之後我能夠堅持在眼下的承諾then()
所以響應的結果這隻適用於將響應對象傳入locationservice.js
方法,然後在then()
中設置res.json
。對我來說,這對我的服務班來說是次優的,而且也不合適。
我希望能夠做的是將我的createStop
方法視爲承諾/帶回調,這樣我就可以返回新的位置對象(或錯誤)並在調用方法中處理它 - 因爲該方法的將來使用可能具有響應上下文/參數來傳入/被填充。
因此在路由我會做更多的東西一樣:
var locationService = require("../app/modules/locationservice.js");
app.post('/createstop', isLoggedIn, function(req, res) {
locationService.createStop(req.body)
.then(dataBack) {
res.json(dataBack);
};
});
這意味着,我可以在將來調用createStop
從其他地方,並作出反應該承諾處理程序的響應。但目前這超出了我的想象。我已經完成了我的盡職調查研究,但對於我的具體案例的一些個人專家意見將不勝感激。
你能不能更換ES6 =>與老同學的標記?我無法在我的代碼中完成這項工作,而且它正在拋出我! –
當然,更新.. –