当我使用express二进制文件创建示例Express应用程序时,引导程序代码包含以下行:
...
var app = express();
...
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)
我没有找到关于app.router的更多信息.我认为这是处理路由(app.get(),app.post()等)规则的中间件,但是当我删除app.use(app.router)时,这些规则也会执行; 线.
那么这个中间件的确切用途是什么?
我想.html使用Express 3 渲染原始页面,如下所示:
server.get('/', function(req, res) {
res.render('login.html');
}
Run Code Online (Sandbox Code Playgroud)
这就是我如何配置服务器来呈现原始HTML页面(灵感来自这个过时的问题):
server
.set('view options', {layout: false})
.set('views', './../')
.engine('html', function(str, options) {
return function(locals) {
return str;
};
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用此配置页面会挂起并且永远不会正确呈现.我做错了什么?如何使用Express 3渲染原始HTLM而不使用Jade和EJS等花哨的渲染引擎?
我在Mac OS X上运行最新版本的Node.我已经将Express与Stylus一起安装了.也是最新版本.
当我修改它们时,Stylus不会重新编译我的.styl文件.我怎样才能解决这个问题?
重新编译我的.styl文件的唯一解决方案是删除已编译的.css文件...重新启动我的应用程序,或者执行clear-cache-refresh(CMD + Shift + R)不会导致重新编译-compile.
这是我的应用程序配置的转储.它与使用可执行文件创建新的快速应用程序时基本相同...
app.configure(function ()
{
this.set("views", __dirname + "/views");
this.set("view engine", "jade");
this.use(express.bodyParser());
this.use(express.methodOverride());
this.use(express.static(__dirname + '/public'));
this.use(require("stylus").middleware({
src: __dirname + "/public",
compress: true
}));
this.use(this.router);
});
Run Code Online (Sandbox Code Playgroud)
我的.styl和编译的.css文件都位于[application]\public\stylesheets\
我正在查看后端的express.js和客户端的JS.我的应用程序是单页Web应用程序.
服务器只提供JSON消息,我的问题是关于express的"路由".是否应该使用路由来连接UI和服务器端业务逻辑?如何使用我的单页应用程序?
所以假设,客户端向服务器发出Ajax调用,在数据库中查找值,并且有服务器端脚本将JSON提供回UI.如何设置此UI和节点脚本关系?
有人可以对此有所了解吗?
我想在没有任何渲染引擎的情况下使用静态文件服务.我试过用:
res.sendfile('public/index.html');
Run Code Online (Sandbox Code Playgroud)
在'/'GET路由上,并在我的路由上表示静态文件的中间件:
app.use(express.static(path.join(__dirname, 'public')));
Run Code Online (Sandbox Code Playgroud)
但似乎客户端要求的所有javascripts都是使用index.html文件信息下载的.
如何成功下载CSS/JS静态文件?
更新:
这是"res.sendfile ..."的路由:
app.get('/*', index);
Run Code Online (Sandbox Code Playgroud)
我希望在任何路由上对服务器的所有请求都会得到,index.html并且它的所有JS和CSS都会被关联.
我正在制作Nodejs和angular js应用程序.当有人在网址上输入并输入网页时,我不得不加载页面.它工作正常,直到我还制作了一个脚本重定向到404错误页面.现在的问题是两个脚本只有一个标准有效.当404重定向工作时,我无法访问在浏览器上键入url的页面,当它工作时,404页面被重定向到索引.HTML.
这是我使用的两个脚本.
app.use(function(req, res) {
res.render('404', {layout: false, title: '404: File Not Found'});
});
app.use('/*', function (req, res) {
res.sendFile(__dirname + '/public/index.html');
});
Run Code Online (Sandbox Code Playgroud)
我在这做错了吗?除此之外,当我从导航中点击它时,我也有我的一般路线在角应用程序中工作正常.