Nodejs要求不起作用

为什么下面的代码不起作用

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

未解决的function或方法路由器

但是这个工作

 const express = require('express'); 

如果我想这样做需要,我该怎么做..两种方法之一需要

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

node -v // v8.3.0

我试图使用这个.. https://github.com/ctavan/express-validator#usage

为什么下面的代码不起作用

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

const router = express.Router();

你正在使用解构来提取一个不存在的属性。 你的代码实际上是这样做的:

 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');

我不熟悉那个库的输出。 如果你知道这个对象同时有一个validationResult和一个check ,并且这些是你唯一关心的事情,那么你的代码看起来很好。