首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在heroku上用node.js自动添加页面?

在heroku上用node.js自动添加页面?
EN

Stack Overflow用户
提问于 2014-01-18 23:23:00
回答 2查看 117关注 0票数 1

如果你能帮我解决这个问题,那就太好了!我正在使用node.js和heroku来节省一个应用程序,我正在修改我的web.js文件--我添加了一个新的帖子。之前的情况很好,但有了更多的页面,它开始失控了。我想知道我能不能自动完成这个任务?这就是我的web.js文件现在的样子:

代码语言:javascript
复制
var express = require('express');
var fs = require('fs');
var htmlfile = "index.html";
var app = express(express.logger());

//day 7 and so on.. till day 15.

var day6 = "./100/day6/day6.html";
app.get('/day6', function(request, response) {
var html = fs.readFileSync(day6).toString();
response.send(html);
});

var day5 = "./100/day5/day5.html";
app.get('/day5', function(request, response) {
var html = fs.readFileSync(day5).toString();
response.send(html);
});

var day4 = "./100/day4/day4.html";
app.get('/day4', function(request, response) {
var html = fs.readFileSync(day4).toString();
response.send(html);
});

var day3 = "./100/day3/day3.html";
app.get('/day3', function(request, response) {
var html = fs.readFileSync(day3).toString();
response.send(html);
});

var day2 = "./100/day2/day2.html";
app.get('/day2', function(request, response) {
var html = fs.readFileSync(day2).toString();
response.send(html);
});

var challengehtmlfile = "100.html";
app.get('/100-day-challenge', function(request, response) {
var html = fs.readFileSync(challengehtmlfile).toString();
response.send(html);
});

var bloghtmlfile = "blog.html";
app.get('/blog', function(request, response) {
var html = fs.readFileSync(bloghtmlfile).toString();
response.send(html);
});


app.get('/', function(request, response) {
var html = fs.readFileSync(htmlfile).toString();
response.send(html);
});

var port = process.env.PORT || 8080;
app.listen(port, function() {
  console.log("Listening on " + port);
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 04:02:31

如果您计划添加更多的页面,那么每页添加一条路径并不是一个好主意。更好的方法是在路由中使用模式匹配。例如,

代码语言:javascript
复制
app.get('/day/:num', function(request, response) {
var day = "./100/day" + request.params.num + "/day" + request.params.num + ".html";
var html = fs.readFileSync(day).toString();
response.send(html);
});

现在这条路线可以匹配任何天数。唯一需要更改的就是URL。您应该访问'/day/3‘,而不是'/day3’。在/day/:num中,:num只是url中的一个变量名。您可以通过request.params.num访问该变量。然后使用该信息构造文件名。希望这能清理你的剧本。)有关更多信息,请查看这里的速递api (http://expressjs.com/api.html#req.params)。

票数 1
EN

Stack Overflow用户

发布于 2014-01-26 05:57:11

复制此代码并将其保存为"insert.sh“。

代码语言:javascript
复制
#!/bin/bash
count=$1
day=day$1

sed -i "/express(express.logger());/avar ${day} = \"./100/${day}/${day}.html\";\napp.get('/${day}', function(request, response) {\nvar html = fs.readFileSync(${day}).toString();\nresponse.send(html);\n});\n" $2 

这个脚本包含两个参数:日期的#和文件名。例如,

代码语言:javascript
复制
bash insert.sh 3 yournode.js

此命令将在day3文件中插入必要的node.js代码。我以为您希望在express.logger()行之后添加这些行。如果您想将代码放在另一行之后,只需将脚本中的express(express.logger());替换为您想要的任何内容。请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21211177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档