Mar*_*coS 3 javascript model-view-controller mongoose mongodb node.js
我正在编写我的第一个MEAN应用程序...为了正确,目前它是MEN:-)应用程序,因为它现在只是服务器端API ...我想要遵循一种MVC模式(或者MC,因为我有没有意见).
我想为我的应用程序选择一个正确的结构,我正在尝试理解如何使用路由,模型和控制器...特别是,我不清楚如何使用控制器......
第一个问题是:我如何定义我的类方法?
目前:
我在"models/person.js"中定义了一个"模型".
然后,我在同一个模型文件中添加(类)方法,这样:
personSchema.method.save = function(callback) {
this.model('Person').savefind({ type: this.type }, callback);
}
module.exports = mongoose.model('Person', personSchema);
Run Code Online (Sandbox Code Playgroud)
然后,在路由(例如"routes/persons.js")中,require()我需要的模型,并实现路由方法.
如果这是一个正确和通用的方法,我不明白如何使用控制器... :-(
在服务器端API公开应用程序中可能不需要控制器?
希望有人能对我的理解有所了解...... :-)
Ale*_*lex 10
假设你正在使用Express 4
https://www.terlici.com/2014/09/29/express-router.html
创建一个app.js这样的
var express = require('express')
, app = express()
//we're loading in our 'controllers' as middleware
app.use(require('./controllers'))
app.listen(3000, function() {
console.log('Listening on port 3000...')
})
Run Code Online (Sandbox Code Playgroud)
然后在/controllers创建一个index.js,看起来像:
var express = require('express')
, router = express.Router()
router.use('/person', require('./person'))
//default routes here
//these could go in a separate file if you want
router.get('/', function(req, res) {
res.send('Home page')
})
router.get('/about', function(req, res) {
res.send('Learn about us')
})
module.exports = router
Run Code Online (Sandbox Code Playgroud)
接下来,您的person控制器将如下所示:
var mongoose = require('mongoose'),
Person = mongoose.model('Person'),
express = require('express'),
router = express.Router()
// actual url will be /person/ since we're loading this in via index.js
router.get('/', function(req, res) {
Person.find({}, function(err, results) { return res.send(results); } );
})
router.post('/', function(req, res) {
//save logic here
})
module.exports = router
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10443 次 |
| 最近记录: |