无法使用后express.js(平均)
问题描述:
这是我的MongoDB连接无法使用后express.js(平均)
var mongoose = require('mongoose');
// Connection URL
var db = 'mongodb://localhost:27017/employeeDetails';
// Use connect method to connect to the Server
mongoose.connect(db, function (error) {
if (error) {
console.log(error);
}
});
var Schema = mongoose.Schema;
var Employee_Schema = new Schema({
EmployeeName: String,
Designation: String,
Project: String,
Skills:String
});
var Employee = mongoose.model('employees', Employee_Schema);
module.exports=Employee;
这是我的API代码(express.js)
var express=require('express');
var router=express.Router();
var Employee=require('../database/dataFile');
router.get('/',function(req,resp,next){
Employee.find({},function(err,docs){
resp.send(docs);
})
});
router.post('/create',function(req, resp, next){
var employee_collection =Employee.collection(Employee);
employee_collection.insert(req.body, function(err, doc) {
if(err) throw err;
console.log(doc);
res.json(doc);
});
});
module.exports=router;
这是我的$ http.post
create(employee: Employee) {
return this.http.post('http://localhost:4500/api/create', employee).map((response: Response) => response.json());
}
我总是
无法加载资源:服务器与500 (内部服务器错误)的状态
回答FYI:$ http.get工作正常。它从MongoDb获取数据。下面以API命中get方法
getEmployeeList() {
return this.http.get('http://localhost:4500/api');
}
请注意我正在例如,从here 本教程没有Post
的功能,我想实现。
答
有与查询的问题,如果你想获取的收集利用:
mongoose.getCollection(<collection name>), But here you are calling the collection function on a model object, not the mongoose one.
相反,我会建议使用.create直接:
Employee.create(req.body, function(err,result){
if(err){throw Error(err)}
return res.json(result);
})
+0
我明白了你的观点这里。Thansk – immirza
+0
您的欢迎。:) –
有你使用HTTP或HttpClient的?在您的帖子中,请求必须包含HttpParams类型,您已在您的帖子请求中提供了员工类型。另外我可以看到你的API上下文路径是以“/ create”的形式给出的。 –
我没有明白你的观点。请更精心制作 – immirza
试试这个router.post('/ api/create'....如果你使用的是HttpClient,你不需要将它映射到json()它默认是一个json() –