将参数从jade发送到js/node
Send parameters from jade to js/node
我正在尝试将变量从follower/jade传递到js/node文件。我正在使用node+express+follower+js我按照以下方式做,但我没有得到价值观。这是我正在使用的代码:
app.js
var express = require('express');
var routes = require('./routes');
var tiles = require('./routes/tiles');
var http = require('http');
var path = require('path');
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/tiles', tiles.tiles);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
index.js//呈现index.jade文件的索引文件
exports.index = function(req, res){
res.render('index');
};
index.jade//在jade文件中,我发送params的行是"tiles?z={z}&x={x}&y={y}"
doctype html
html
head
title Tile Server Example
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1.0')
link(rel='stylesheet', href='http://cdn.leafletjs.com/leaflet-0.7.1/leaflet.css')
body
#map(style='width: 800px; height: 800px')
a(href='tiles') < tiles >
script(src='http://cdn.leafletjs.com/leaflet-0.7.1/leaflet.js')
script.
var map;
var mbTiles = new L.tileLayer('tiles?z={z}&x={x}&y={y}', {
tms: true,
attribution: 'this is a test',
opacity: 0.7
});
map = new L.Map("map",{
zoom: 18,
center: [12.83563,77.68312],
layers: [mbTiles]
});
tiles.js//这里是我获取参数的地方,我通过控制台显示它们
var x = "", y = "", z = "";
module.exports = function(req, res){
x = req.query.x;
y = req.query.y;
z = req.query.z;
console.log("z="+z+"&x="+x+"&y="+y);
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('routes/tiles.mbtiles');
var sql = "SELECT * FROM tiles WHERE zoom_level = "+z+" AND tile_column = "+x+" AND tile_row = "+y;
db.each(sql, function(err, row) {
console.log(sql);
res.writeHead(200, {'content-type':'image/jpg'});
res.write(row.tile_data);
res.end();
});
db.close();
};
知道吗?
尝试更改导出模块的方式。在tiles.js
:中
更改:
exports.tiles = function(req, res){ ...
收件人:
module.exports = function(req, res){
并且在app.js
:中
app.get('/tiles', tiles.tiles)
至
app.get('/tiles', tiles)
更新
此外,在设置标题和所需信息后添加res.end()
,以将响应更改为完成状态。
res.writeHead(200, {'content-type':'image/png'});
res.write(row.tile_data);
res.end();
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- JS(node.js)而循环不起作用
- 如何使用 JS (Node.js) 防止 HTTP 查询中允许使用 UTF8 字符串
- Angular JS & Node Webkit Routing
- 当作为脚本运行时.js Node中“this”的上下文是什么
- JS/Node:- 使用 node.io 选择标记
- JavaScript 如何让节点在返回 node.js/Node-RED 之前等待
- 处理快速连续的函数调用 - Javascript / underscore.js / node.js
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- JS node-mysql bools 表现得很奇怪
- Node.js+Node Webkit+基于Node串行端口的应用程序-这可能吗
- 如何在Express.js/Node.js中检查查询字符串是否有值
- Express.Js, Node.Js, MongoDB Questions
- 在JS/Node中,当多个人编辑相同的记录时,如何避免数据冲突?有图案吗
- 服务器端js(node.js)上的同步
- 将参数从jade发送到js/node
- angular.js+node.js/electron中的Promise;不起作用
- 是否有可能确定我的应用程序的aws实例使用js/node aws-sdk
- Image Magick模块抛出奇怪的错误(Express js Node js)
- 用JS (Node.js)读取文本文件'