' TypeError:点不是函数'在Node.js中

时间:2017-07-17 09:50:55

标签: javascript node.js mongodb express ejs

我在Node中运行以下代码时遇到此错误 第一个文件是dao文件,它连接到mongodb 第二个是服务器文件 最后一个是index1文件

 var mongoose = require('mongoose');
 mongoose.Promise = require('bluebird');

 mongoose.connect('mongodb://localhost:27017/base', function(err) {
 if (err) { 
     throw err; 
 }

 var Schema = mongoose.Schema;

 var IndexSchema = new Schema({
   indexp1: Number,
   date:Number,
   heure:String
 });

 var Index = mongoose.model('Index', IndexSchema);

 exports.Index= mongoose.model('Index', IndexSchema);

 var Points = function(date_debut,date_fin){
   Index.find({}, function(err, data){
      if(err) throw err;
      if(data.length > 1){
         res.render("index1", {datas: data})
      } 
      else{
         res.render("index1", {datas: "No names added yet!"})
      }
      return(datas);    
 });

};

module.exports =    Points;
 var dao = require('./daotest.js');
 dao.Points(15,15);
<% for (var i = 0; i < datas.length; i++) {%>
<p> <%= datas[i].indexp1 %> </p>
<% } %>

我做错了什么?

2 个答案:

答案 0 :(得分:1)

Var更改为var。资本化对关键字很重要。

答案 1 :(得分:0)

可能是你的问题在这一行:

exports.Index= mongoose.model('Index', IndexSchema);

由于:

在任何情况下,如果尝试将新对象分配给导出,请确保我们这样做。

exports = module.exports = {};

如果按照错误的方式执行,module.exports仍将指向作为模块实例的一部分创建的对象。

exports = {};

因此,向上述导出对象添加任何内容都不会对module.exports对象产生任何影响,并且任何内容都不会作为require的一部分导出或返回。

所以试试:

module.exports.Index= mongoose.model('Index', IndexSchema);

希望帮助你!!!