Node.js 在cmd和localhost上获得此输出;“未定义createError”;

Node.js 在cmd和localhost上获得此输出;“未定义createError”;,node.js,mongodb,Node.js,Mongodb,大家好,我是node js,mongo db的新手。 我使用以下链接创建crud应用程序:。我不知道为什么我在cmd和localhost上得到这个输出“createError未定义”。 请帮助我,因为我是node的初学者 server.js let express = require('express'), path = require('path'), mongoose = require('mongoose'), cors = require('cors'), bod

大家好,我是node js,mongo db的新手。 我使用以下链接创建crud应用程序:。我不知道为什么我在cmd和localhost上得到这个输出“createError未定义”。 请帮助我,因为我是node的初学者

server.js

let express = require('express'),
   path = require('path'),
   mongoose = require('mongoose'),
   cors = require('cors'),
   bodyParser = require('body-parser'),
   dbConfig = require('./database/db');

// Connecting with mongo db
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/meandb", {
   useNewUrlParser: true
}).then(() => {
      console.log('Database sucessfully connected')
   },
   error => {
      console.log('Database could not connected: ' + error)
   }
)

// Setting up port with express js
const employeeRoute = require('../backend/routes/employee.route')
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
   extended: false
}));
app.use(cors()); 
app.use(express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/', express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/api', employeeRoute)

// Create port
const port = process.env.PORT || 4000;
const server = app.listen(port, () => {
  console.log('Connected to port ' + port)
})

// Find 404 and hand over to error handler
app.use((req, res, next) => {
   next(createError(404));
   
});

// error handler
app.use(function (err, req, res, next) {
   
  console.error(err.message); // Log error message in our server's console
  if (!err.statusCode) err.statusCode = 500; // If err has no specified error code, set error code to 'Internal Server Error (500)'
  res.status(err.statusCode).send(err.message); // All HTTP requests must have a response, so let's send back an error with its status code and message
});
const express=require('express');
const app=express();
const employeeRoute=express.Router();

//Employee model
let Employee=require('../models/Employee');

//Add Employee
employeeRoute.route('/create').post((req,res,next)=>{
    Employee.create(req.body,(error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
});

//Get ALL Employee
employeeRoute.route('/').get((req,res)=>{
    Employee.find((error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
})
// Get single employee
employeeRoute.route('/read/:id').get((req, res) => {
    Employee.findById(req.params.id, (error, data) => {
      if (error) {
        return next(error)
      } else {
        res.json(data)
      }
    })
  })
  
  
  // Update employee
  employeeRoute.route('/update/:id').put((req, res, next) => {
    Employee.findByIdAndUpdate(req.params.id, {
      $set: req.body
    }, (error, data) => {
      if (error) {
        return next(error);
        console.log(error)
      } else {
        res.json(data)
        console.log('Data updated successfully')
      }
    })
  })
  
  // Delete employee
  employeeRoute.route('/delete/:id').delete((req, res, next) => {
    Employee.findOneAndRemove(req.params.id, (error, data) => {
      if (error) {
        return next(error);
      } else {
        res.status(200).json({
          msg: data
        })
      }
    })
  })
module.exports=employeeRoute;
const createError = require('http-errors');
Employee.route.js

let express = require('express'),
   path = require('path'),
   mongoose = require('mongoose'),
   cors = require('cors'),
   bodyParser = require('body-parser'),
   dbConfig = require('./database/db');

// Connecting with mongo db
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/meandb", {
   useNewUrlParser: true
}).then(() => {
      console.log('Database sucessfully connected')
   },
   error => {
      console.log('Database could not connected: ' + error)
   }
)

// Setting up port with express js
const employeeRoute = require('../backend/routes/employee.route')
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
   extended: false
}));
app.use(cors()); 
app.use(express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/', express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/api', employeeRoute)

// Create port
const port = process.env.PORT || 4000;
const server = app.listen(port, () => {
  console.log('Connected to port ' + port)
})

// Find 404 and hand over to error handler
app.use((req, res, next) => {
   next(createError(404));
   
});

// error handler
app.use(function (err, req, res, next) {
   
  console.error(err.message); // Log error message in our server's console
  if (!err.statusCode) err.statusCode = 500; // If err has no specified error code, set error code to 'Internal Server Error (500)'
  res.status(err.statusCode).send(err.message); // All HTTP requests must have a response, so let's send back an error with its status code and message
});
const express=require('express');
const app=express();
const employeeRoute=express.Router();

//Employee model
let Employee=require('../models/Employee');

//Add Employee
employeeRoute.route('/create').post((req,res,next)=>{
    Employee.create(req.body,(error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
});

//Get ALL Employee
employeeRoute.route('/').get((req,res)=>{
    Employee.find((error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
})
// Get single employee
employeeRoute.route('/read/:id').get((req, res) => {
    Employee.findById(req.params.id, (error, data) => {
      if (error) {
        return next(error)
      } else {
        res.json(data)
      }
    })
  })
  
  
  // Update employee
  employeeRoute.route('/update/:id').put((req, res, next) => {
    Employee.findByIdAndUpdate(req.params.id, {
      $set: req.body
    }, (error, data) => {
      if (error) {
        return next(error);
        console.log(error)
      } else {
        res.json(data)
        console.log('Data updated successfully')
      }
    })
  })
  
  // Delete employee
  employeeRoute.route('/delete/:id').delete((req, res, next) => {
    Employee.findOneAndRemove(req.params.id, (error, data) => {
      if (error) {
        return next(error);
      } else {
        res.status(200).json({
          msg: data
        })
      }
    })
  })
module.exports=employeeRoute;
const createError = require('http-errors');

在angular部分,当我试图提交数据时,submit按钮什么也不做。

需要一些时间才能习惯,但这个错误通常意味着在别处没有创建名为“createError”的变量。该变量通常用于“http错误”npm包。您可以在此处了解更多信息:

将其添加到app.js文件的顶部

App.js

let express = require('express'),
   path = require('path'),
   mongoose = require('mongoose'),
   cors = require('cors'),
   bodyParser = require('body-parser'),
   dbConfig = require('./database/db');

// Connecting with mongo db
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/meandb", {
   useNewUrlParser: true
}).then(() => {
      console.log('Database sucessfully connected')
   },
   error => {
      console.log('Database could not connected: ' + error)
   }
)

// Setting up port with express js
const employeeRoute = require('../backend/routes/employee.route')
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
   extended: false
}));
app.use(cors()); 
app.use(express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/', express.static(path.join(__dirname, 'dist/mean-stack-crud-app')));
app.use('/api', employeeRoute)

// Create port
const port = process.env.PORT || 4000;
const server = app.listen(port, () => {
  console.log('Connected to port ' + port)
})

// Find 404 and hand over to error handler
app.use((req, res, next) => {
   next(createError(404));
   
});

// error handler
app.use(function (err, req, res, next) {
   
  console.error(err.message); // Log error message in our server's console
  if (!err.statusCode) err.statusCode = 500; // If err has no specified error code, set error code to 'Internal Server Error (500)'
  res.status(err.statusCode).send(err.message); // All HTTP requests must have a response, so let's send back an error with its status code and message
});
const express=require('express');
const app=express();
const employeeRoute=express.Router();

//Employee model
let Employee=require('../models/Employee');

//Add Employee
employeeRoute.route('/create').post((req,res,next)=>{
    Employee.create(req.body,(error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
});

//Get ALL Employee
employeeRoute.route('/').get((req,res)=>{
    Employee.find((error,data)=>{
        if(error){
            return next(error)
        }
        else{
            res.json(data)
        }
    })
})
// Get single employee
employeeRoute.route('/read/:id').get((req, res) => {
    Employee.findById(req.params.id, (error, data) => {
      if (error) {
        return next(error)
      } else {
        res.json(data)
      }
    })
  })
  
  
  // Update employee
  employeeRoute.route('/update/:id').put((req, res, next) => {
    Employee.findByIdAndUpdate(req.params.id, {
      $set: req.body
    }, (error, data) => {
      if (error) {
        return next(error);
        console.log(error)
      } else {
        res.json(data)
        console.log('Data updated successfully')
      }
    })
  })
  
  // Delete employee
  employeeRoute.route('/delete/:id').delete((req, res, next) => {
    Employee.findOneAndRemove(req.params.id, (error, data) => {
      if (error) {
        return next(error);
      } else {
        res.status(200).json({
          msg: data
        })
      }
    })
  })
module.exports=employeeRoute;
const createError = require('http-errors');
另外,请确保已使用此命令安装并保存软件包。在与您的package.json文件相同的目录中运行此文件

npm install http-errors --save