【发布时间】:2019-12-08 12:07:13
【问题描述】:
这是关于使用 express 的 REST api 的问题。 完成在端口 3000 上运行并连接到数据库分配的 Express 应用程序。 数据库应该有一个包含以下用户详细信息的用户集合。
a) 用户 ID - "user1", 名字 - “Akshay”, 姓氏 - “库马尔”, 电子邮件 - “khiladi@gmail.com”
b) 用户 ID - “用户 2” 名字 - “Rajnikanth”, 姓 - ””, 电子邮件 - “boss@rajnikanth.com”
上面的数据库部分不是必需的(我发布了整个问题以防万一)
应用程序应具有以下 api - /users - 返回数据库中所有用户的 JSON /users/:userId - 根据传递的 userId 返回单个用户的对象
在给定的应用程序中编辑以下文件 - 响应.js app.js
并通过以下两种响应使其成为功能齐全的 REST API - a) 错误响应 - {'isError':true,'status': 500,'errorMessage':'一些错误信息',successMessage:null} b) 成功响应—— {'isError':false,'status': 200,'errorMessage':null,successMessage:'一些结果'}
注意:您不需要使用 app.listen()。这将由系统处理。
*/
我已经尝试过这个解决方案:
app.get('/users', function(req, res, err) {
UserModel.find(function(err, result){
if(err) {
let apiResponse = response.generateResponse(true, 500, "Some
error message", null);
res.send(apiResponse);
} else {
let apiResponse = response.generateResponse(false, 200, "Some
result", result);
res.send(apiResponse);
}
});
});
app.get('/users/:userId', function(req, res, err){
BlogModel.findOne({ 'blogId': req.params.userId }, (err, result) => {
if (err) {
let apiResponse = response.generateResponse(true, 500, "Some error message", null);
res.send(apiResponse);
} else {
let apiResponse = response.generateResponse(false, 200, "Some result", result);
res.send(apiResponse);
}
});
});
但它给出了一些逻辑错误信息。 我必须在线提交代码,在那里我回答我的作业,他们的网站编译器只会告诉你是否存在 sytnax 错误或逻辑错误。
正如我之前提到的,我必须在网站上提交它,所以不能真正得到结果,但是当我在我的 Visual Studio 代码上运行它时,这段代码可以正常工作。 我认为有一些我无法弄清楚的逻辑错误。
所有 .JS 文件:
app.js
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const UserModel = require('./User.js');
let db = mongoose.connect('mongodb://testuser:password123@ds149252.mlab.com:49252/assignment', { useMongoClient: true });
const responseLib = require('./responseLib');
app.get('/users', function(req, res, err) {
UserModel.find(function(err, result){
if(err) {
let apiResponse = response.generateResponse(true, 500, "Some error message", null);
res.send(apiResponse);
} else {
let apiResponse = response.generateResponse(false, 200, "Some result", result);
res.send(apiResponse);
}
});
});
app.get('/users/:userId', function(req, res, err){
BlogModel.findOne({ 'blogId': req.params.userId }, (err, result) => {
if (err) {
let apiResponse = response.generateResponse(true, 500, "Some error message", null);
res.send(apiResponse);
} else {
let apiResponse = response.generateResponse(false, 200, "Some result", result);
res.send(apiResponse);
}
});
});
module.exports = app;
Users.js
// importing mongoose module
// importing mongoose module
const mongoose = require('mongoose')
// import schema
const Schema = mongoose.Schema;
let userSchema = new Schema(
{
userId: {
type: String,
unique: true
},
firstName: {
type: String,
default: ''
},
lastName: {
type: String,
default: ''
},
email: {
type: String,
default: ''
}
}
)
mongoose.model('User', userSchema);
module.exports = mongoose.model('User', userSchema)
responseLib.js
let generateResponse = (isError,status,errorMessage,successMessage) =>{
let response = {
isError : isError,
status : status,
errorMessage : errorMessage,
successMessage : successMessage
}
return response
};// end generate response.
module.exports = {generateResponse:generateResponse}
【问题讨论】:
标签: javascript mongodb rest express mongoose