我已经编写了通用模块。
const { check, body } = require('express-validator/check');
var models = require("../models");
let Validations = [
check('email').isEmail().withMessage("Invalid Email"),
check('phone').isLength({ min: 5 }).withMessage("Min length Required"),
check('name').not().isEmpty().withMessage("Value is Required"),
body("name").custom(value => {
return models.fundraisers.findByName(value).then(user => {
if (user) {
return Promise.reject('E-mail already in use');
}
})
})
]
export { Validations };
我正尝试如下访问。
import Validations from "../validations/fundraiser";
但是我收到以下错误。
import Validations from "../validations/fundraiser";
^^^^^^^^^^^
SyntaxError: Unexpected identifierI
我找不到问题所在。请帮助任何人解决此问题。
谢谢。
答案 0 :(得分:0)
您应该尝试像这样的伴侣导入
从“ ../validations/fundraiser”导入{Validation};
并且为此,您的节点应支持ES6及更高版本。
答案 1 :(得分:0)
导入仍然是node.js中的实验性功能。
要使用它们,您应该使用--experimental-modules
运行节点,并使用*.mjs
扩展名
node --experimental-modules test.mjs
test.mjs:
import a from './test2'
a();
test2.mjs:
const a = () => console.log(22)
export default a;
答案 2 :(得分:0)
您正在将commonjs
个模块与ES6
个模块混合使用。您可以阅读有关基础知识here的更多信息。您可以做的就是改变:
export { Validations };
到
module.exports = Validations;
然后在导入时使用以下语法:
const Validations = require('../validations/fundraiser');
如果要使用较新的语法,则
import
/ export
babel
之类的编译器将代码转换为commonjs
语法,以便您也可以在节点和较旧的浏览器中使用它。答案 3 :(得分:0)
尝试一下:
const Validations = [...];
...
export default Validations;
然后:
import Validations from '../validations/fundraiser';
答案 4 :(得分:0)
喜欢@axm_答案:
这里有个例子:
文件:functions.js
const API = {
}
API.sayHello = () => {
return console.log('Hello')
}
API.sayGoodbye = () => {
return console.log('good bye!')
}
API.doSomeThing = () => {
return console.log('let do some thing!')
}
module.exports = API
文件index.js
const API = require('./functions')
API.sayHello()
API.doSomeThing()
API.sayGoodbye()