如何使用参数从终端调用javascript文件中定义的方法

如何使用参数从终端调用javascript文件中定义的方法,javascript,node.js,mongodb,terminal,mongoose,Javascript,Node.js,Mongodb,Terminal,Mongoose,我正在使用mongoose和javascript文件中定义的查询方法处理测试mongodb数据库,我想通过使用node js从终端调用这些方法来运行一些查询(其中一些带有参数)。我没有创建任何服务器,虽然我熟悉使用postman创建路由和进行查询,并且我已经编写了测试,确认这些方法按预期工作,但我希望通过终端运行查询,因为我这样做只是为了学习 如果有人能推荐一个可以读取javascript文件并使其中定义的方法/函数可以从终端调用的节点包,我将非常高兴。我也愿意以任何其他方式实现这一目标 我曾尝

我正在使用mongoose和javascript文件中定义的查询方法处理测试mongodb数据库,我想通过使用node js从终端调用这些方法来运行一些查询(其中一些带有参数)。我没有创建任何服务器,虽然我熟悉使用postman创建路由和进行查询,并且我已经编写了测试,确认这些方法按预期工作,但我希望通过终端运行查询,因为我这样做只是为了学习

如果有人能推荐一个可以读取javascript文件并使其中定义的方法/函数可以从终端调用的节点包,我将非常高兴。我也愿意以任何其他方式实现这一目标

我曾尝试在网上搜索合适的npm软件包,但我并不幸运,我对stack还很陌生,还在学习,底线是我想在终端上使用我自己定义的文件方法(而不是mongo)运行mongoose查询。我的一段代码显示了一些方法,下面将进一步说明。多谢各位

module.exports = {
createRole: function(roleTitle) {

var roleInfo = {
    title: roleTitle
  },
  newRole = new models.Role(roleInfo);

newRole.save(function(err, roles) {

  if (err) {
    console.log(err);
  }
  return 'role saved';

});

},


getAllUsers: function() {

return models.User.find({}).sort({
    firstname: 'ascending'
  })
  .populate('role');

},

getAllDocuments: function(limit) {

return models.Document
  .find({})
  .limit(limit)
  .sort({
    date: 'descending'
  })
  .select('dateCreated permission contents')
  .populate('permission');
  }
}

简短回答:
process.argv

#! /usr/bin/env node

function hiya(name) {
  console.log('Hello, ' + name)
}


console.log('node: ' + process.argv[0])
console.log('script path: ' + process.argv[1])

if (process.argv.length > 2)
  hiya(process.argv[2])
else hiya('world')
输出(节点示例或“./example”):

输出(节点示例测试或“./示例测试”):


假设我正确地回答了您的问题,您想启动一个控制台,并从中使用模块中定义的方法吗?如果是这样的话,很简单。在没有文件的情况下启动的节点是一个交互式shell。因此,启动它,导入您的模块,然后这些方法将对您可用:

在命令行的“类型”节点上(+输入)

然后键入

var MyModule = require('MyModule');

接下来,您可以键入MyModule.createRole(…)

非常感谢,这正是我想要的,非常好用!非常感谢,这工作得非常好,虽然我更喜欢下面的解决方案,因为它不需要编写任何额外的代码行,但我感谢您的回复
node: node
script path: /home/julian/wave/example
Hello, test
var MyModule = require('MyModule');