Nodejs要求不起作用

时间:2017-09-16 03:47:55

标签: javascript node.js

为什么以下代码不起作用

const {express} = require('express');

const router = express.Router();
  

未解决的功能或方法路由器

但是这项工作

const express = require('express');

如果我想要这样做,我该怎么做..两个方法合二为一

const {validationResult, check} = require('express-validator/check');

node -v // v8.3.0

我正在尝试使用此功能.. https://github.com/ctavan/express-validator#usage

1 个答案:

答案 0 :(得分:4)

  

为什么以下代码不起作用

     

const {express} = require('express');

     

const router = express.Router();

您正在使用destructuring来提取不存在的属性。您的代码实际上是这样做的:

const temp = require('express');
const express = temp.express;

require('express')返回的对象有几个属性,但.express不是其中之一,因此您最终将express设置为undefined。然后当你调用express.Router()时,你会收到错误。

您的代码只是保存整个对象,然后使用正确的属性名称访问它。您可以保留该代码,或者如果您知道您只对您可以执行的路由器感兴趣:

const {Router} = require('express');
const router = Router();

与:

几乎相同
const express = require('express');
const Router = express.Router;
const router = Router();
  

如果我想要这样做,我该怎么做..两个方法合二为一

     

const {validationResult,check} = require('express-validator / check');

我不熟悉图书馆出口的内容。如果您知道该对象同时具有validationResultcheck并且这些是您唯一关心的内容,那么您的代码看起来很好。