Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NodeJS中的JavaScript类和模块_Javascript_Node.js - Fatal编程技术网

NodeJS中的JavaScript类和模块

NodeJS中的JavaScript类和模块,javascript,node.js,Javascript,Node.js,我很难理解如何将单独的.js文件导入到index.js节点文件中 我创建了一个文件pokemon.js,如下所示: var pokemon = (function(){ function Pokemon(name) { this.name = name; console.log("pokemon"); } })(); module.exports.Pokemon = pokemon; 现在在我的index.js中,我想使用它: var Pokemon = r

我很难理解如何将单独的.js文件导入到index.js节点文件中

我创建了一个文件pokemon.js,如下所示:

var pokemon = (function(){

  function Pokemon(name) {

    this.name = name; 
    console.log("pokemon");
  }

})();

module.exports.Pokemon = pokemon; 
现在在我的index.js中,我想使用它:

var Pokemon = require('./models/pokemon.js');
//如何调用口袋妖怪函数

更新

var Pokemon = require('./models/models.js');
var app = express();

var pokemons = [];

app.get("/pokemon/all",function(req,res){

  var pokemon = Pokemon("Pikachu"); // Pokemon is not a function



})
以下是我找到的解决方案:

models.js:

module.exports = function(name) {
  this.name = name; 
}

index.js: 

var Pokemon = require('./models/models.js');
var app = express();

var pokemons = [];

app.get("/pokemon/all",function(req,res){

  var pokemon = new Pokemon('Pikachu');
  pokemons.push(pokemon);
  res.json(pokemons);

})

@catta提供的代码只是有一个小错误,请尝试:

var pokemon = function(name) {
this.name = name; 
console.log("pokemon");
}
module.exports.Pokemon = pokemon; 
在index.js中

var Pokemon = require('./models.js'); 
Pokemon.Pokemon('name') //output name

我知道您想要导出对象构造函数


pokemon.js

function Pokemon(name){
   this.name = name;
   console.log(this.name);
}
// if any prototype
Pokemon.prototype.serviceOne = function(){ };
Pokemon.prototype.serviceTwo = function(){ };


module.exports = Pokemon;
index.js

var Pokemon = require('path/to/pokemon'); 
app.get("/pokemon/all",function(req,res){

    var pikachu= new Pokemon("Pikachu"); 
    pikachu.serviceOne();
    pikachu.serviceTwo();

})
var pokemon = function(str){
    this.name = str; 
    console.log(this.name);
};
module.exports.Pokemon = pokemon;
var Pokemon = require('./models/models.js');
var app = express();
var pokemons = [];
app.get("/pokemon/all",function(req,res){
  pokemons.push(Pokemon.Pokemon("Pikachu"));
})

pokemon.js

var Pokemon = require('path/to/pokemon'); 
app.get("/pokemon/all",function(req,res){

    var pikachu= new Pokemon("Pikachu"); 
    pikachu.serviceOne();
    pikachu.serviceTwo();

})
var pokemon = function(str){
    this.name = str; 
    console.log(this.name);
};
module.exports.Pokemon = pokemon;
var Pokemon = require('./models/models.js');
var app = express();
var pokemons = [];
app.get("/pokemon/all",function(req,res){
  pokemons.push(Pokemon.Pokemon("Pikachu"));
})
main.js

var Pokemon = require('path/to/pokemon'); 
app.get("/pokemon/all",function(req,res){

    var pikachu= new Pokemon("Pikachu"); 
    pikachu.serviceOne();
    pikachu.serviceTwo();

})
var pokemon = function(str){
    this.name = str; 
    console.log(this.name);
};
module.exports.Pokemon = pokemon;
var Pokemon = require('./models/models.js');
var app = express();
var pokemons = [];
app.get("/pokemon/all",function(req,res){
  pokemons.push(Pokemon.Pokemon("Pikachu"));
})

当您将var key设置为require时,它只引用该文件。因此,您需要“Pokemon.Pokemon()”

您的iLife不会返回任何内容,因此
Pokemon
未定义的
。删除iLife部分并使
Pokemon=function Pokemon…
。您能将其作为一个答案来编写,以便我有更好的想法吗?如果pokemon有方法或函数怎么办。@johndoe你应该用解决方案回答你自己的问题。仍然没有定义。最后一行:pokemon.pokemon(“name”);它不是口袋妖怪(“名字”);或者粘贴当前代码只是在我的笔记本电脑@john doe
b07/apps/test/over$more models.js var pokemon=function(name){this.name=name;console.log(“pokemon”);}module.exports.pokemon=pokemon;douxsey@douxsey-CR70-2M-CX70-2OC-CX70-2OD:/mnt/9aa1c3fe-f4e9-4867-afef-8ab2db92eb07/apps/test/over$more index.js var Pokemon=require('./models.js');Pokemon.Pokemon('name')//输出名称douxsey@douxsey-CR70-2M-CX70-2OC-CX70-2OD:/mnt/9aa1c3fe-f4e9-4867-afef-8ab2db92eb07/apps/test/over$node index.js口袋妖怪
也是很好的解决方案。我也得到了同样的结果。口袋妖怪没有定义。同样使用上述方法,如何将函数添加到Pokemon类(function)。@johndoe export-as-constructor。编辑,非常感谢!如果我正在使用上述技术,如何将原型函数添加到Pokemon对象中。您可以:
Pokemon.Prototype.f=function(){}