我的MEAN堆棧應用程序出現問題。我是節點,角度,mongoDB,express,jade中的新手......這可能可以解釋爲什麼我失敗了......未調用Node.JS控制器
我沒有找到與我的所有requiremnt匹配的單個教程,所以我從不同的教程構建此應用程序但他們從不以相同的方式訪問/組織數據。有時,他們申報服務,somtimes他們使用的路由提供商...
因此,這裏是我如何設置我的應用程序:
app.js
package.json
routes.js
---config
auth.js
database.js
passport.js
---node_modules
[...]
---public
+---images
+---javascripts
| | CarListController.js
| |
| \---vendor
\---stylesheets
style.css
---views
index.jade
layout.jade
login.jade
profile.jade
的問題是在我的index.jade。在這裏,我想顯示汽車列表(並稍後在列表中進行搜索)。
所以我創建了一個CONTROLER(CarListController.js):
function CarListController($scope, $http) {
console.log('Calling CarListController'));
$http.get('/api/cars').success(function(data) {
$scope.cars = data.cars;
});
});
在我routes.js我檢索JSON汽車名單:
module.exports = function(app, passport) {
app.get('/api/cars', function(req, res) {
// load the things we need
var mongoose = require('mongoose');
// define the schema for our user model
var carSchema = mongoose.Schema({
marque : String,
modele : String,
desc : String
});
// create the model for users and expose it to our app
var Car = module.exports = mongoose.model('Car', carSchema);
// use mongoose to get all cars in the database
Car.find(function(err, car) {
console.dir(car);
// if there is an error retrieving, send the error. nothing after res.send(err) will execute
if (err)
res.send(err)
res.json(car); // return all cars in JSON format
});
});
app.get('/', function(req, res) {
res.render('index.jade') // load the index.jade file
});
我index.jade
最後:
html(lang='fr', ng-app='LocatyvModule')
head
meta(charset='utf-8')
title My AngularJS App
link(rel='stylesheet', href='/stylesheets/style.css')
script(type='text/javascript', src='/javascripts/vendor/angular/angular.js')
script(type='text/javascript', src='/javascripts/vendor/angular-bootstrap/ui-bootstrap-tpls.js')
script(type='text/javascript', src='/javascripts/LocatyvModule.js')
script(type='text/javascript', src='/javascripts/CarListController.js')
body
div.container(ng-controller="CarListController")
div
div.row.car(ng-repeat="car in cars")
p A CAR!
當我打電話給「localhost:8080/api/cars」 - >沒關係我有3輛車在我的數據庫中。
當我打電話給我的index.jade我沒有得到3行,我沒有得到控制器中的痕跡。 我做錯了什麼?
另外我覺得我的項目組織不是很好(如果你有索姆提示可以隨意說)。
您確定結果是'$ scope.cars = data.cars;'不是'$ scope.cars = data;'。你項目佈局很好。 – wayne
不工作,但問題是我沒有看到我放入控制器的跟蹤日誌,所以甚至沒有被調用。 – Tyvain
我需要在哪裏聲明我的控制器?有時我看到教程中有服務,是否有必要? – Tyvain