在我的节点项目中,我有以下代码。
-rwxr-xr-x 1 root root 13 May 2 10:14 sayhi.sh
这给了我意外的令牌错误。但是,如果我将其设置如下,就可以了。
import jwt from 'jsonwebtoken';
import config from 'config';
class UserService {
generateAuthToken(user) {
const token = jwt.sign({ _id: user._id, isAdmin: user.isAdmin }, config.get('jwtPrivateKey'));
return token;
}
}
export new UserService();
这是什么原因?
答案 0 :(得分:2)
export new UserService();
会引发错误,因为使用命名的导出时,export
需要一个标识符,而new UserService()
不能解析为有效的标识符。
尝试一下:
export const userService = new UserService();
/** imported like this: */
import { userService } from '../../the-path'
因此,import
命名导出时标识符的名称必须相同。
如果您更改导出标识符名称,则还必须在导入中更改该名称:
export const service = new UserService(); // <- just service
/** imported like this: */
import { service } from '../../the-path' // <- userService would be undefined. you have to import service
与命名导出不同,默认名称在导入时对名称没有限制。
例如:
export default new UserService();
/** while importing, */
import userService from '../../the-path'; // <- works!
import serviceOfUser from '../../the-path'; // <- Works!
详细了解export
here