Node.js expressweb应用程序中的rest完全服务
我必须实现一个express web应用程序才能在mongodb中使用rest服务 我的DBConfig.js文件如下所示,其中包括我的db模式Node.js expressweb应用程序中的rest完全服务,node.js,mongodb,express,Node.js,Mongodb,Express,我必须实现一个express web应用程序才能在mongodb中使用rest服务 我的DBConfig.js文件如下所示,其中包括我的db模式 var Mongoose = require("mongoose"); const Schema = Mongoose.Schema; const UserSchema = new Schema({ name : { type: String, require: true }, address : { type: String
var Mongoose = require("mongoose");
const Schema = Mongoose.Schema;
const UserSchema = new Schema({
name : {
type: String,
require: true
},
address : {
type: String,
require: false
},
password: {
type: String,
require: true
}
});
Mongoose.model('User', UserSchema);
Mongoose.connect("mongodb://localhost:27017/demo", function (err) {
if (err) {
console.log(err);
process.exit(-1);
}
console.log("Connected");
});
module.exports = Mongoose;
所有相关方法都在我的Controller.js文件中实现
var Mongoose = require("../DBSchema/DBConfig");
var UserSchema = Mongoose.model('User');
var Controller = function() {
this.insertUser = function (data) {
return new Promise(function(resolve, reject) {
var User = new UserSchema({
name: data.name,
address: data.address,
password: data.password
});
User.save().then(function () {
resolve({status: 200, message: "User inserted successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
});
});
}
this.getAll = function () {
return new Promise(function (resolve, reject) {
UserSchema.find().exec().then(function (data) {
resolve({status: 200, Userdata: data})
}).catch(function (err) {
resolve({status: 500, message : "No data available"})
})
})
}
this.getuser = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.find({_id: id}).exec().then(function (data) {
resolve({status: 200, userSearched: data});
}).catch(function (err) {
reject({status: 404, message: "User NOT FOUND"});
})
})
}
this.updateUser = function (id, data) {
return new Promise(function (resolve, reject) {
UserSchema.update({_id: id}, data).then(function (data) {
resolve({status: 200, message: "User updated successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
})
})
}
this.remove = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.remove({_id: id}).then(function () {
resolve({status: 200, message: "Successfully deleted"})
}).catch(function (err) {
resolve({status: 500, message: "Error : "+err})
})
})
}
}
module.exports = new Controller();
const Express = require("express");
var Routes = Express.Router();
var UserRoute = require('./UserController/User.Route');
Routes.use('/user/', UserRoute);
module.exports = Routes;
现在我必须调用我的rest服务,我想知道如何使用控制器中的这些方法来访问数据
我正在使用邮递员查看我的数据。
输出应该是
{
"data": [
{
"_id": "5cf724a58c9b061ba062a28c",
"name": "name1",
"address": "adress1",
"password": "password1",
"__v": 0
}
]
}
您只需在URL中定义路由即可访问相关方法,例如,我在名为UserController的文件夹下创建了一个名为User.routes.js的文件,您可以将Controller.js文件添加到该文件夹中,以便对其进行排列,从而获得清晰的概念。还假设您将DBConfig.js文件添加到名为DBSchema的文件夹下,这使您能够进行良好的代码练习
var Express = require('express');
var router = Express.Router();
var Controller = require('./Controller')
router.get('/',function (req,res) {
Controller.getAll().then(function (data) {
res.status(data.status).send({data:data.Userdata})
});
});
router.get('/:id',function (req,res) {
Controller.getuser(req.params.id).then(function (data) {
res.status(data.status).send({data:data.userSearched});
});
});
router.post('/',function(req,res){
Controller.insertUser(req.body).then(function (data) {
res.status(data.status).send({message: data.message});
}).catch(function (err) {
res.status(err.status).send({message: err.message});
});
});
router.put('/:id',function (req,res) {
Controller.updateUser(req.params.id,req.body).then(function (data) {
res.status(data.status).send({message: data.message});
});
});
router.delete('/:id', function (req,res) {
Controller.remove(req.params.id).then(function (data) {
res.status(data.status).send({message: data.message});
});
});
module.exports = router;
现在,您需要通过postman使用User.Routes.js中的方法。为此,您需要提供要访问的url名称。例如,我创建了Routes.js文件
var Mongoose = require("../DBSchema/DBConfig");
var UserSchema = Mongoose.model('User');
var Controller = function() {
this.insertUser = function (data) {
return new Promise(function(resolve, reject) {
var User = new UserSchema({
name: data.name,
address: data.address,
password: data.password
});
User.save().then(function () {
resolve({status: 200, message: "User inserted successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
});
});
}
this.getAll = function () {
return new Promise(function (resolve, reject) {
UserSchema.find().exec().then(function (data) {
resolve({status: 200, Userdata: data})
}).catch(function (err) {
resolve({status: 500, message : "No data available"})
})
})
}
this.getuser = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.find({_id: id}).exec().then(function (data) {
resolve({status: 200, userSearched: data});
}).catch(function (err) {
reject({status: 404, message: "User NOT FOUND"});
})
})
}
this.updateUser = function (id, data) {
return new Promise(function (resolve, reject) {
UserSchema.update({_id: id}, data).then(function (data) {
resolve({status: 200, message: "User updated successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
})
})
}
this.remove = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.remove({_id: id}).then(function () {
resolve({status: 200, message: "Successfully deleted"})
}).catch(function (err) {
resolve({status: 500, message: "Error : "+err})
})
})
}
}
module.exports = new Controller();
const Express = require("express");
var Routes = Express.Router();
var UserRoute = require('./UserController/User.Route');
Routes.use('/user/', UserRoute);
module.exports = Routes;
类似于此,如果要查看架构中的数据,必须添加url,如-“”
您的app.js文件需要创建的路由文件,您可以这样做
const Express = require("express");
const app = Express();
const BodyParser = require("body-parser");
const Routes = require("./Routes");
app.use(BodyParser.json());
app.use("/", Routes);
app.listen(8083, "localhost", function(err) {
if (err) {
console.log(err);
process.exit(-1);
}
console.log("Server listening on port 8083");
});
现在,使用postman,您可以通过在URL中提供用户id来添加用户、更新和删除特定用户,如-“”“您只需在URL中定义路由即可访问相关方法,示例我在一个名为UserController的文件夹下创建了一个名为User.Routes.js的文件,您可以将Controller.js文件添加到该文件夹中,以便对其进行排列,从而获得清晰的概念。还假设您将DBConfig.js文件添加到名为DBSchema的文件夹下,这使您能够进行良好的代码练习
var Express = require('express');
var router = Express.Router();
var Controller = require('./Controller')
router.get('/',function (req,res) {
Controller.getAll().then(function (data) {
res.status(data.status).send({data:data.Userdata})
});
});
router.get('/:id',function (req,res) {
Controller.getuser(req.params.id).then(function (data) {
res.status(data.status).send({data:data.userSearched});
});
});
router.post('/',function(req,res){
Controller.insertUser(req.body).then(function (data) {
res.status(data.status).send({message: data.message});
}).catch(function (err) {
res.status(err.status).send({message: err.message});
});
});
router.put('/:id',function (req,res) {
Controller.updateUser(req.params.id,req.body).then(function (data) {
res.status(data.status).send({message: data.message});
});
});
router.delete('/:id', function (req,res) {
Controller.remove(req.params.id).then(function (data) {
res.status(data.status).send({message: data.message});
});
});
module.exports = router;
现在,您需要通过postman使用User.Routes.js中的方法。为此,您需要提供要访问的url名称。例如,我创建了Routes.js文件
var Mongoose = require("../DBSchema/DBConfig");
var UserSchema = Mongoose.model('User');
var Controller = function() {
this.insertUser = function (data) {
return new Promise(function(resolve, reject) {
var User = new UserSchema({
name: data.name,
address: data.address,
password: data.password
});
User.save().then(function () {
resolve({status: 200, message: "User inserted successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
});
});
}
this.getAll = function () {
return new Promise(function (resolve, reject) {
UserSchema.find().exec().then(function (data) {
resolve({status: 200, Userdata: data})
}).catch(function (err) {
resolve({status: 500, message : "No data available"})
})
})
}
this.getuser = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.find({_id: id}).exec().then(function (data) {
resolve({status: 200, userSearched: data});
}).catch(function (err) {
reject({status: 404, message: "User NOT FOUND"});
})
})
}
this.updateUser = function (id, data) {
return new Promise(function (resolve, reject) {
UserSchema.update({_id: id}, data).then(function (data) {
resolve({status: 200, message: "User updated successfully"})
}).catch(function (err) {
reject({status: 500, message: "Error:- " + err})
})
})
}
this.remove = function (id) {
return new Promise(function (resolve, reject) {
UserSchema.remove({_id: id}).then(function () {
resolve({status: 200, message: "Successfully deleted"})
}).catch(function (err) {
resolve({status: 500, message: "Error : "+err})
})
})
}
}
module.exports = new Controller();
const Express = require("express");
var Routes = Express.Router();
var UserRoute = require('./UserController/User.Route');
Routes.use('/user/', UserRoute);
module.exports = Routes;
类似于此,如果要查看架构中的数据,必须添加url,如-“”
您的app.js文件需要创建的路由文件,您可以这样做
const Express = require("express");
const app = Express();
const BodyParser = require("body-parser");
const Routes = require("./Routes");
app.use(BodyParser.json());
app.use("/", Routes);
app.listen(8083, "localhost", function(err) {
if (err) {
console.log(err);
process.exit(-1);
}
console.log("Server listening on port 8083");
});
现在,使用postman,您可以添加用户、更新和删除特定用户,方法是在URL中提供用户id,如-“”Thank@jthiva,效果很好。现在我明白了。谢谢@jthiva,效果很好。现在我明白了。