无法在快速 nodejs 应用程序的视图中显示数据
Cannot display data in a view in a express nodejs app
我是表达和节点的新手,我正在创建一个简单的快速应用程序,用于获取存储在json文件中的数据,在我的帖子/详细信息视图上,存储的数据没有呈现。我相信是我从 json 文件中提取数据的方式,但我看不到错误在哪里?
这是代码:
帖子.json
[
{
"name": "first name",
"description": "test first description",
"slug": "first-name",
"id": "2f065d59"
},
{
"name": "second name",
"description": "test second description",
"slug": "second-name",
"id": "0071b034"
}
]
帖子列表.js
var express = require('express');
var Creatordb = require('./database/posts.json');
var fs = require('fs');
var uuid = require('node-uuid');
var list = function () {
return Creatordb;
};
var getById = function (id) {
for(var i=0;i<Creatordb.length;i++) {
var id = Creatordb[i].id;
}
return id;
};
exports.list = list;
exports.getById = getById;
帖子.js
var express = require('express');
var router = express.Router();
var db = require('./postslist');
var fs = require('fs');
exports.index = router.get('/',function (req, res) {
res.render('post/index', { posts: db.list()});
});
exports.form = router.get('/create',function (req, res) {
res.render('post/form');
});
exports.details = router.get('/details/:id',function (req, res, next) {
console.log(req.body.name);
console.log(req.body.description);
console.log(req.body.id);
//console log gives me this:
undefined
undefined
undefined
var post = db.getById(req.params.id);
res.render('post/details', {post:post});
});
module.exports = router;
应用.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var uuid = require('node-uuid');
var routes = require('./routes/index');
var post = require('./routes/post');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use('/', routes);
app.use('/post', post);
module.exports = app;
我可以很好地访问帖子/详细信息/:id 路由,但名称描述和其他参数不显示。谁能向我解释一下我在这里错过了什么?-谢谢。
更正 getById 函数
var getById = function (id) {
for(var i=0;i<Creatordb.length;i++) {
if(Creatordb[i].id == id){
return Creatordb[i];
}
}
};
相关文章:
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- FF视图源|脚本高亮显示为红色
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 如何在MVC3中显示鼠标悬停在文本上的部分视图
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 为什么我的视图没有显示在角度ui视图中
- 使用PhoneGap和jQuery Mobile在android设备上显示动态列表视图
- 使用Ruby数组使用JS在视图中进行迭代和显示
- 滑动视图 - 显示下一项的预览/片段
- 在剃须刀应用程序中将视图显示为灯箱
- ember.js如何为视图显示不同的筛选列表?复杂的设置
- ng重复视图显示与JSON数据不对应
- RedirectToAction之后没有视图显示
- ASP.. NET MVC控制器/视图显示本地时间
- 离子弹出窗口视图显示在离子模态视图后面
- WinJs列表视图显示:无带ID的tile
- 完整的日历视图显示goToDate分前,下和今天
- 如何从父数组视图显示子对象视图
- CouchApp视图显示将为空结果
- 在树状视图显示中只打开一个li节点