gpt4 book ai didi

node.js - 如何使用特定集合Mongoose-Express-Mongodb (MEAN STACK)

转载 作者:可可西里 更新时间:2023-11-01 10:31:34 25 4
gpt4 key购买 nike

我开始使用 MEAN STACK,所以我接受了他们的项目(关于发布文章),并且我试图对其进行 costomize,以便获得我可以使用 angularjs 和 findOne 过滤的所有流的列表按编号。我按照他们为文章所做的同样的事情来创建与流相关的 JS 文件(流是我的对象)。所以我有一个名为 flows 的集合,我将其导入到 MEAN STACK (db == mean-dev) 使用的同一个数据库中,我尝试了以下代码:

// myApp/serves/models/flow.js

'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;

// Flow Schema
var FlowSchema = new Schema({
_id: {
type: Number,
default: ''
},
name: {
type: String,
default: '',
trim: true
},
Clients: {
type: Array,
default: '',
trim: true
},
DP Prot: {
type: String,
default: ''
}
/* And 15 others attributes...*/
});

/** Statics */
FlowSchema.statics.load = function(id, cb) {
this.findOne({
_id: id
}).exec(cb);
};
// Define the collection
mongoose.model('Flow', FlowSchema);

Controller 代码:

// servers/controllers/flows.js
'use strict';

/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Flow = mongoose.model('Flow'),
_ = require('lodash');

/**
* Find flow by id
*/
exports.flow = function(req, res, next, id) {
Flow.load(id, function(err, flow) {
if (err) return next(err);
if (!flow) return next(new Error('Failed to load flow ' + id));
req.flow = flow;
next();
});
};

/**
* New code count Flows
*/
exports.compte = function(req, res) {
var c;
flow.count({}, function(err, count) {
if (err) return next(err);
c = count;
res.jsonp (count);
});
};

/**
* Show Flow
*/
exports.show = function(req, res) {
res.jsonp(req.flow);
};

/**
* List of Flows
*/
exports.all = function(req, res) {
Flow.find().sort('-name').populate('name', 'application').exec(function(err, flows) {
if (err) {
res.render('error', {
status: 500
});
} else {
res.jsonp(flows);
}
});
};

我也添加了路由......但是它不起作用,你认为我犯了什么错误吗?预先感谢您的帮助

最佳答案

文档向您展示了如何:http://mongoosejs.com/docs/guide.html#collection

您可以在创建架构时明确选择一个集合:

// Flow Schema
var FlowSchema = new Schema({
/* attributes...*/
}, {
collection: 'my-collection'
});

或者您可以稍后在创建的模式上设置它:

// Flow Schema
var FlowSchema = new Schema({
/* attributes...*/
});

FlowSchema.set('collection', 'my-collection');

我相信这是在 Mongoose 3.4 中添加的,所以请检查您使用的 Mongoose 的版本。

关于node.js - 如何使用特定集合Mongoose-Express-Mongodb (MEAN STACK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com