Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在express中路由CRUD操作?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何在express中路由CRUD操作?

Javascript 如何在express中路由CRUD操作?,javascript,node.js,express,Javascript,Node.js,Express,我为node.js、express和使用mongoose的MongoDB连接编写了以下代码 首先,我尝试了一个名为server.js的文件,它在没有express的情况下工作。但现在我想在express中执行,但它不起作用 它只是一个简单的程序,可以读取和创建mongo数据库中的sampleBear对象 这是我的app.js var express = require('express'); var path = require('path'); var favicon = require('s

我为node.js、express和使用mongoose的MongoDB连接编写了以下代码

首先,我尝试了一个名为server.js的文件,它在没有express的情况下工作。但现在我想在express中执行,但它不起作用

它只是一个简单的程序,可以读取和创建mongo数据库中的sample
Bear
对象

这是我的app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//var routes = require('./routes/index');
var users = require('./routes/users');
var mongoose = require('mongoose');
var db = mongoose.connect('localhost:27017/nodetest1');

//var Bear = require('./routes/users');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var port = process.env.PORT || 8080;

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

router.use(function(req,res,next){
  console.log('something is happening');
  next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});

// more routes for our API will happen here




// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api

app.use('/', router);
app.use('/bears', users);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
var express = require('express');
var router = express.Router();

var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);


router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;
这里是我的users.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//var routes = require('./routes/index');
var users = require('./routes/users');
var mongoose = require('mongoose');
var db = mongoose.connect('localhost:27017/nodetest1');

//var Bear = require('./routes/users');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var port = process.env.PORT || 8080;

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

router.use(function(req,res,next){
  console.log('something is happening');
  next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});

// more routes for our API will happen here




// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api

app.use('/', router);
app.use('/bears', users);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
var express = require('express');
var router = express.Router();

var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);


router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;

请告诉我如何路由CRUD操作。

一个文件中不能有两个module.exports。位于文件底部的那个重写了所有其他文件

你需要两个文件,比如

controllers/users.js

var express = require('express');
var router = express.Router();

router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;
models/user.js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);
在app.js中,您可以执行以下操作:

var user = require('controllers/user');
app.use('/users', user);
It端点现在收听
/users/bears

如果你在某处需要你的模型,只需加载

var userModel = mongoose.model('User');

我建议您下载并运行它,当您看到新功能的实现方式时,添加新功能会更容易

型号/emp.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//var routes = require('./routes/index');
var users = require('./routes/users');
var mongoose = require('mongoose');
var db = mongoose.connect('localhost:27017/nodetest1');

//var Bear = require('./routes/users');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var port = process.env.PORT || 8080;

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

router.use(function(req,res,next){
  console.log('something is happening');
  next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});

// more routes for our API will happen here




// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api

app.use('/', router);
app.use('/bears', users);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
var express = require('express');
var router = express.Router();

var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);


router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;
const mongoose=require('mongoose');
var Schema=mongoose.Schema;
var conn=猫鼬收集;
var empSchema=newmongoose.Schema({
名称:String,
电子邮件:String,
年龄:字符串,
性别:字符串
});
var empModel=mongoose.model('Emp',empSchema);
module.exports=empModel;
routes/index.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//var routes = require('./routes/index');
var users = require('./routes/users');
var mongoose = require('mongoose');
var db = mongoose.connect('localhost:27017/nodetest1');

//var Bear = require('./routes/users');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var port = process.env.PORT || 8080;

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

router.use(function(req,res,next){
  console.log('something is happening');
  next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});

// more routes for our API will happen here




// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api

app.use('/', router);
app.use('/bears', users);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
var express = require('express');
var router = express.Router();

var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);


router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;
var express=require('express');
var router=express.router();
const mongoose=require('mongoose');
var empModel=require('../models/emp');
猫鼬。连接(“mongodb://localhost:27017/employee“,{useNewUrlParser:true,useUnifiedTopology:true});
router.get('/',函数(req,res,next){
empModel.find({},函数(err,docs){
res.render('index',{title:'Express',result:docs});
})
});
router.post('/',函数(req,res,next){
const emp=新的emp模型({
名称:req.body.name,
电子邮件:req.body.email,
年龄:要求的身体年龄,
性别:req.body.gender
});
电磁脉冲
.save()
。然后(结果=>{
res.redirect(“/”);
})
.catch(错误=>{
res.status(500).json({error:err});
});
});
router.get('/update',函数(req、res、next){
empModel.find({},函数(err,docs){
res.render('update',{title:'Express',result:docs});
})
});
router.post('/update',函数(req,res,next){
empModel.findOneAndUpdate({email:req.body.email},{$set:{name:req.body.name,age:req.body.age,gender:req.body.gender}},{returnOriginal:false}).exec()。然后(结果=>{
res.redirect(“/”);
}).catch(错误=>{
res.status(500).json({error:err});
});
});
router.get('/delete',函数(req、res、next){
empModel.find({},函数(err,docs){
res.render('delete',{title:'Express',result:docs});
})
});
router.post('/delete',函数(req,res,next){
empModel.remove({email:req.body.email}).exec()。然后(结果=>{
res.redirect(“/”);
}).catch(错误=>{
res.status(500).json({error:err});
});
});
module.exports=路由器;
视图/index.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

//var routes = require('./routes/index');
var users = require('./routes/users');
var mongoose = require('mongoose');
var db = mongoose.connect('localhost:27017/nodetest1');

//var Bear = require('./routes/users');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var port = process.env.PORT || 8080;

// Make our db accessible to our router
app.use(function(req,res,next){
    req.db = db;
    next();
});

// ROUTES FOR OUR API
// =============================================================================
var router = express.Router();              // get an instance of the express Router

router.use(function(req,res,next){
  console.log('something is happening');
  next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });   
});

// more routes for our API will happen here




// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api

app.use('/', router);
app.use('/bears', users);

// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);


// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
var express = require('express');
var router = express.Router();

var Schema = mongoose.Schema;

var BearSchema = new Schema({
  name: String
});

module.exports = mongoose.model('Bear',BearSchema);


router.route('/bears')

    // create a bear (accessed at POST http://localhost:8080/api/bears)
    .post(function(req, res) {

        var bear = new Bear();      // create a new instance of the Bear model
        bear.name = req.body.name;  // set the bears name (comes from the request)

        // save the bear and check for errors
        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });
module.exports = router;

.登入表格{
宽度:300px;
保证金:0自动;
字体系列:塔荷马,日内瓦,无衬线;
}
.登入表格h1{
文本对齐:居中;
颜色:#4d;
字体大小:24px;
填充:20px 0 20px 0;
}
.登录表单输入[type=“password”],
.登录表单输入[type=“text”]{
宽度:100%;
填充:15px;
边框:1px实心#dddddd;
边缘底部:15px;
框大小:边框框;
}
.登录表单输入[type=“submit”]{
宽度:100%;
填充:15px;
背景色:红色;
边界:0;
框大小:边框框;
光标:指针;
字体大小:粗体;
颜色:#ffffff;
}
    Sr 名称 电子邮件 年龄 性别 积垢手术

请指定您面临的错误。请在这里评论错误?所以我可以调试它。使用GET请求来更改状态是一种不好的做法。