通过Express将动态内容集成到Node.JS上的静态服务页面的最简单方法
simplest way to integrate dynamic content into statically served page on Node.JS via Express
我正在通过Express webserver从Node.JS提供静态网页:
app.use('/', express.static('public'));
什么是最简约的方式来集成一些动态内容,例如从数据库中检索到的项目列表到这样一个页面?我看到了在服务器上"伪造"一个.js文件的可能性,该文件实际上是动态创建的,然后加载到服务器上public
文件夹内的index.html
中:
app.get('/myScript.js', (req, res) => {
data = getDataFromDatabase();
res.send('var data1 = ' + data[0] + '; var data2 = ' + data[1]);
});
这看起来非常粗糙,我想知道最好的极简方法是什么。
你也可以在get路由中返回一个回调的响应。我这样做:
端点:router.get('/people', (req, res) => {
People.list((error, response) => {
if (error) return res.end();
return res.send(response);
});
});
模型:
module.exports = {
connect: (callback) => {
r.connect({
host: config.db.host,
port: config.db.port,
db: config.db.name
})
.then((connection) => {
return callback(null, connection);
})
.error((err) => {
return callback(err);
});
},
list: function (callback) {
this.connect((err, connection) => {
if (err) return callback(err);
r.db(config.db.name).table(config.db.tables.people)
.run(connection)
.then((cursor) => {
return cursor.toArray();
})
.then((users) => {
return callback(null, users);
})
.error((err) => {
return callback(err);
});
});
},
...
有了这个,然后我得到响应对象打印到我的屏幕。模型代码是rethinkdb代码,但是您可以用您正在使用的任何代码替换它。如果这不是你想要的,我很抱歉。祝你好运=)
相关文章:
- 如何使用Node.js正确地为私有静态文件提供服务
- 为什么我可以在ServiceNow中访问示例脚本化Web服务(订购黑莓)并返回静态变量,但它没有订购黑莓
- 静态内容服务在快递中不起作用
- 基于KendoUI网格内的服务数据的静态下拉列表值选择
- 在javascript中美化字符串化对象以在静态HTML页面中提供服务
- 节点未为静态目录提供服务
- 如何在使用Webpack后在静态服务器上服务我的React web应用程序
- 如何改变Ember.js服务于静态资源的位置
- 通过Express将动态内容集成到Node.JS上的静态服务页面的最简单方法
- expressjs静态文件不被服务
- 静态文件不被服务到子目录在Node.js使用Express
- 如何在开发中为托管在S3中的本地静态文件提供服务
- Node.js实现静态图像服务
- 使用Flask服务静态资源-违反同源政策
- Restify静态服务公开其他文件
- 阻止MVC为.js、.css等静态文件提供服务
- 使用 Azure 媒体服务实时流式传输单个/静态音频文件
- 在express.js中使用路由服务静态文件
- js:将cookie附加到静态服务的内容
- Express.js静态服务不工作