【问题标题】:Create New User Using npm scripts使用 npm 脚本创建新用户
【发布时间】:2017-08-08 09:57:25
【问题描述】:

我想在我的 package.json 脚本中使用 js 文件创建一个用户,但是当我通过 npm run create_admin 运行该脚本时,该用户并未创建,也不会引发任何错误。一些快速调试让我相信Account.register 没有被调用。

package.json 脚本 -

"scripts": {
"start": "node bin/www",
"test": "mocha --recursive",
"create_admin": "node scripts/create_admin"}

create_admin.js -

var prompt = require('prompt'),
    Account = require('../models/account'),
    util = require('../utility/utility');

var schema = {
    properties: {
        username: {
            pattern:  /^[a-zA-Z\s\-]+$/,
            message: 'Username must contain only letters, spaces, or dashes.',
            required: true,
            description: 'Enter username'
    },
        password: {
            hidden: true,
            required: true,
            description: 'Enter password'
        },
        confirmPassword: {
            hidden: true,
            required: true,
            description: 'Confirm password'
        }
    }
};

prompt.start();
prompt.get(schema, function(err, result) {
    if (result.password === result.confirmPassword) {
        var newAccount = {
            username: result.username,
            isAdmin: true,
            regDate: Date.now(),
            lastLogin: Date.now()
        };
        Account.register(new Account(newAccount), result.password, function(err, account) {
            if (err) {
                console.log('Username already in use. Please try another username');
            } else {
                console.log('Admin account created');
            }
        });
    } else {
        console.log('Error - passwords do not match');
    }
});

感谢任何帮助。

【问题讨论】:

    标签: node.js express mongoose npm


    【解决方案1】:

    在尝试解决这个问题一段时间后,我发现我忽略了require我的应用程序。添加解决了问题并调用了Account.register

    已更新以包含应用程序 -

    var app = require('../app'),
        prompt = require('prompt'),
        Account = require('../models/account'),
        util = require('../utility/utility');
    
    
    var schema = {
        properties: {
            username: {
                pattern:  /^[a-zA-Z\s\-]+$/,
                message: 'Username must contain only letters, spaces, or dashes.',
                required: true,
                description: 'Enter username'
            },
            password: {
                hidden: true,
                required: true,
                description: 'Enter password'
            },
            confirmPassword: {
                hidden: true,
                required: true,
                description: 'Confirm password'
            }
        }
    };
    
    prompt.start();
    prompt.get(schema, function(err, result) {
        if (result.password === result.confirmPassword) {
            var newAccount = {
                username: result.username,
                isAdmin: true,
                regDate: Date.now(),
                lastLogin: Date.now()
            };
            Account.register(new Account(newAccount), result.password, function(err, account) {
                if (err) {
                    console.log('Username already in use. Please try another username');
                } else {
                    console.log('Admin account created');
                }
            });
        } else {
            console.log('Error - passwords do not match');
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 1970-01-01
      • 2010-12-08
      • 2020-07-21
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      相关资源
      最近更新 更多