使用node.js, MySQL和Jade在浏览器中显示数据库内容
Show database content in browser with node.js, MySQL and Jade
我目前正在使用Node.js, Express.js和Jade。我的数据库是MySQL。我是node.js的新手,所以我想尝试一些非常简单的方法:在浏览器的表中显示数据库中的一些数据。不幸的是,它仍然不起作用。我可以在一个自由的端口上显示数据,但不是我需要它的地方-在端口3000上。而且我也无法处理反应本身。这是我的一个"解决方案"或想法。也许异步调用有问题?我完全不知道。
下面是我的代码:routes.js
var express = require('express');
var controller = express.Router();
var dataModel2 = require('../models/rooms');
controller.get('/rooms', function(req, res, next) {
var rooms = dataModel2();
res.render('rooms', {
items: rooms
});
});
module.exports = controller;
模型/rooms.js
var rooms;
var connection = require('./databaseConnection');
var http = require('http');
rooms = function() {
http.createServer(function (request, response)
{
console.log('Creating the http server');
connection.query('SELECT * FROM rooms', function(err, rows, fields)
{
response.writeHead(200, { 'Content-Type': 'application/json'});
var room = response.end(JSON.stringify(rows));
return room;
});
});
module.exports = rooms();
模型/databaseConnection.js
var mysql = require('mysql');
module.exports = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'raspi_key_royal'
});
rooms.jade
extends layout
block content
div(id="bodyRoyal")
table(border='1')
thead
tr
th ID
th Name
tbody
each item in items
tr
td=item.rid
td=item.name
我把函数分开了一点,因为还有一些其他的部分,如"persons"等。我试图插入控制台。日志在房间。js,但这似乎不工作。我还认为我可以将响应保存到一个变量中,以便我可以在其他地方使用它。
谢谢你的每一个帮助和提示!施特菲·
应该这样做:
var express = require('express'),
app = express(),
connection = require('./databaseConnection');
app.get('/rooms', function (req, res) {
connection.query('SELECT * FROM rooms', function(err, rows, fields)
{
res.render('rooms', {
items: rows
});
});
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
这是来自express网站…http://expressjs.com/starter/hello-world.html
app.listen(3000, ...
是如何将它配置到特定端口(在本例中为3000)。
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
相关文章:
- 如何检测浏览器并根据浏览器显示视频
- 为什么浏览器显示原型属性不同
- Javascript,基于浏览器显示图像
- 浏览器显示/执行表单字段的警报
- 跨浏览器显示模态对话框替换
- 谷歌浏览器 - 显示和隐藏元素
- 请求节点.js后浏览器显示错误
- ajax如何防止浏览器显示ajax url
- 可以'无法在JS中访问document.cookie中的cookie,但浏览器显示存在cookie
- 为什么我的浏览器显示“;未获取引用错误“;在这里
- 如何在用户不刷新浏览器的情况下不断地向用户浏览器显示更新
- ie浏览器显示警告值“未定义”;但火狐和chrome显示出了实际价值
- 不完全回复来自服务器的警告消息用ie8浏览器显示
- 哪个事件导致浏览器显示HTML验证消息
- 检测浏览器-显示不同的链接
- 使浏览器显示下载文件列表
- 浏览器显示过时的JSP页面,用户必须手动刷新
- 浏览器显示区域的位置
- 浏览器显示'reactComponent未定义'在控制台
- 浏览器显示缓存文件而不是重定向