2017-11-11 89 views
0

这是我的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的功能,我想实现。

+0

有你使用HTTP或HttpClient的?在您的帖子中,请求必须包含HttpParams类型,您已在您的帖子请求中提供了员工类型。另外我可以看到你的API上下文路径是以“/ create”的形式给出的。 –

+0

我没有明白你的观点。请更精心制作 – immirza

+0

试试这个router.post('/ api/create'....如果你使用的是HttpClient,你不需要将它映射到json()它默认是一个json() –

回答

1

有与查询的问题,如果你想获取的收集利用:

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

您的欢迎。:) –