为什么以下代码不起作用
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
答案 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');
我不熟悉图书馆出口的内容。如果您知道该对象同时具有validationResult
和check
并且这些是您唯一关心的内容,那么您的代码看起来很好。