我有一個「Google Card」設計的頁面。我想在這個主頁的卡片上呈現一些視圖。Node JS + Express:在主視圖中呈現子視圖
該卡接口看起來是這樣的:
因爲可能有很多卡,我組織了我模塊項目。
(順便說一句,如果你知道這就是框架更適合我的項目不是快遞呢,你可以告訴它給我嗎?:))
我使用Node.js的與快遞框架。我的目錄結構是這樣的:
|-app
|--modules
|---weather
|---index.js
|----views
|-----weather.jade
|--views
|--config.js
|--server.js
|-public
|--assets
|---img
|---css
|---...
下面是我的一些當前的代碼:
server.js:
var express = require('express');
var app = express();
app.use("/public", express.static(__dirname + '/../public'));
app.set('view engine', 'jade');
Board = {};
Board.modules = {};
Board.modules.weather = require('./modules/weather');
app.use(Board.modules.sticks);
app.get('/', function(req,res){
tpl = {};
tpl.modules = Board.modules;
console.log(tpl);
res.render(__dirname + '/views/board.jade', tpl);
});
app.listen(8080);
board.jade(主頁)
doctype html
html(lang="fr")
head
meta(charset="utf-8")
title Board
block stylesheets
link(rel="stylesheet", href="/public/assets/css/reset.css")
link(rel="stylesheet", href="/public/assets/css/board.css")
body
// Background
div.bg
// Header
header.topinfo
span.left.ip
| 192.168.31.11
span.center.logo
span.logo
span.logo-baseline
span.right.time
| 13:37
// Modules
ul
each val in modules
li= val
block scripts
script(src="/public/assets/bower_components/jquery/dist/jquery.min.js")
script(src="/public/assets/lib/jquery-taphold/taphold.js")
script(src="/public/assets/lib/background-check/background-check.min.js")
script(src="/public/assets/bower_components/masonry/dist/masonry.pkgd.min.js")
script(src="/public/assets/js/app.js")
和模塊/ weather/index.js
var express = require('express');
var app = module.exports = express();
app.get('/', function(req,res){
res.render(__dirname + '/views/sticks.jade');
});
我認爲其目的就像獲取modules/weather/index.js的app.get('/')的結果,但不調用路由,在將渲染結果插入main查看,但我不知道該怎麼做,保持我的代碼的模塊化...
你已經定義了2個app.get('/'),所以它可能會發生衝突。你爲什麼不嘗試:'app.get('/') - > res.render('/ index.jade'); 'index.jade'中的app.get('/ weather') - > res.render('/ sticks.jade')'和 有js腳本調用ajax'$ get({url:'/ weather'}) '並填寫數據到一個類,如'
' – Kai 2014-10-05 02:00:03