1171050
已解决
应该是没有链接数据库,在model里加入mongoose.connect('')就好了。
问题
//plugin.js
exports.mongoose = {
enable: true,
package: 'egg-mongoose',
};
//config.default.js
exports.mongoose = {
url: 'mongodb://localhost:27017/mydb',
options: {},
};
//\model\user.js
module.exports = app => {
const mongoose = app.mongoose;
const Schema = mongoose.Schema;
const UserSchema = new Schema({
userName: { type: String },
password: { type: String },
});
return mongoose.model('User', UserSchema);
}
//\controller\user.js
const Controller = require('egg').Controller;
class UserController extends Controller {
async getUser() {
console.log(this.ctx.model)
this.ctx.body = await this.ctx.model.User.find();
}
}
module.exports = UserController;
使用egg-mongoose链接mydb库的user集合获取数据,上面代码运行后浏览器访问http://127.0.0.1:7001/user并没有任何结果 连接失败 Firefox 无法建立到 127.0.0.1:7001 服务器的连接。 此站点暂时无法使用或者太过忙碌。请过几分钟后再试。 如果您无法载入任何网页,请检查您计算机的网络连接状态。 如果您的计算机或网络受到防火墙或者代理服务器的保护,请确认 Firefox 已被授权访问网络
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("User"). find({}).toArray(function(err, result) { // 返回集合中所有数据
if (err) throw err;
console.log(result);
db.close();
});
//直接用mongodb这样是可以得到结果
});
有人知道这是为什么吗???