我们可以像这样轻松地从meteor shell创建用户
Accounts.createUser({username: 'john', password: '12345'})
同样,我只想通过npm脚本添加多个用户。有什么想法吗?
换句话说,我想通过npm命令使用fixtures功能,而不是在初始运行时使用。
谢谢。
答案 0 :(得分:1)
对于普通集合(即不同于Meteor.users
),您可以直接使用MongoDB集合。在项目以开发模式运行时打开Meteor Mongo shell,然后直接键入Mongo shell命令。
对于Meteor.users
集合,您希望利用accounts-base
和accounts-password
软件包自动管理,而不是直接摆弄MongoDB,而是希望通过Meteor应用程序插入文档/用户
很遗憾,您的应用源文件(例如UsersFixtures.js
文件)绝对不适合使用CLI。
通常的解决方案是在您的应用服务器中嵌入专用方法:
// On your server.
// Make sure this Method is not available on production.
// When started with `meteor run`, NODE_ENV will be `development` unless set otherwise previously in your environment variables.
if (process.env.NODE_ENV !== 'production') {
Meteor.methods({
addTestUser(username, password) {
Accounts.createUser({
username,
password // If you do not want to transmit the clear password even in dev environment, you can call the method with 2nd arg: {algorithm: "sha-256", digest: sha256function(password)}
})
}
});
}
然后以开发模式(meteor run
)启动Meteor项目,在浏览器中访问您的应用程序,打开浏览器控制台,然后直接从那里调用该方法:
Meteor.call('addTestUser', myUsername, myPassword)
您也可以直接在浏览器控制台中使用Accounts.createUser
,但它会自动以新用户身份登录。