【发布时间】:2019-01-26 21:37:30
【问题描述】:
我已经成功完成了使用 express API 和节点 js 从 MongoDB 获取数据并将其绑定到 angular ng2-smart-table。 单击表的添加按钮时,我正在调用 express API,但在 api.js 中未调用我的 post 方法,我尝试在 post 中打印 console.log 但未调用。 为了更好地理解,特此发布代码:
Component.ts
onCreateConfirm(event,_dataService): void {
this._dataService.postMutualFunds(event.newData);
event.confirm.resolve(event.newData);
}
data.service.ts
postMutualFunds(parameterValue:any ){
return this._http.post('/add_mutual_funds',
{params:parameterValue}).map(result => this.result = result.json().data);
}
api.js
var express = require('express');
var router = express.Router();
var MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;
var bodyParser = require("body-parser");
const connection = (closure) => {
return
MongoClient.connect('mongodb://xxx.com:63898/xx', (err,db) => {
if(err){
return console.log(err);
}
closure(db);
});
}
//Get call
router.get('/mutual_funds',(req,res) =>{
console.log("test get"); //This is executed
connection((db) => {
var projection = {_id:0};
db.collection('mutual_funds').find().project(projection).
toArray().then((mutual_funds) => {
response.data = mutual_funds;
res.json(response);
})
})
})
//Post call
router.post('/mutual_funds',(req,res) => {
console.log(req.body.params);
console.log("test post");
db.collection('mutual_funds').insertOne(req.body.params)
})
module.exports = router;
现在我可以调用 api js 但无法将数据插入到 mongodb 请在下面找到 api.js 执行输出的屏幕截图 //为什么我无法发布数据?(更新了我上面的邮政编码)遇到错误500
【问题讨论】:
-
为什么不订阅服务函数调用
this._dataService.postMutualFunds(event.newData).subscribe((data)=>{ console.log(data);});
标签: node.js angular express mean-stack