我读了很多关于node,express和许多有用的模块。 我试图解析GET HTTP请求,但我做错了。
也许使用express.Router()
和views engine
可以解决此问题,但我想知道为什么此代码无效?
服务器启动并运行!公共文件服务非常好但是我无法解析GET请求。
app.use(express.static(path.join(__dirname, 'public')));
/*I would like to get req.session here*/
app.get('/', function (req, res, next) {
console.log('I'm trying to log this string');
})
我还使用 morgan 来记录所有HTTP请求,这是输出:
Listening at: http://localhost:8080
GET / 200 14.288 ms - 9139
GET /css/materialize.css 304 16.311 ms - -
GET /css/style.css 304 24.775 ms - -
GET /js/materialize.js 304 21.287 ms - -
GET /js/init.js 304 20.238 ms - -
GET /js/index.js 200 51.159 ms - 2719
GET /fonts/roboto/Roboto-Regular.woff2 304 2.419 ms - -
GET /fonts/roboto/Roboto-Medium.woff2 304 3.663 ms - -
GET /fonts/roboto/Roboto-Light.woff2 304 7.958 ms - -
GET /fonts/roboto/Roboto-Bold.woff2 304 9.010 ms - -
有效评论:
//app.use(express.static(path.join(__dirname, 'public')));
但是,很明显,没有提供任何文件。
PS:我从未见过解释上述情况的教程或代码片段。
答案 0 :(得分:1)
我猜你在index.html
目录中有一个名为public/
的文件,该文件是在请求/
时将被提供的文件,因为那是{{1}默认情况下会这样做。
您可以禁用该行为,因此请求将传递给您的express.static()
处理程序:
/
记录在案here。
或者,您可以通过在静态中间件之前声明它来确保请求命中app.use(express.static(path.join(__dirname, 'public'), { index : false }));
处理程序:
/
答案 1 :(得分:0)
感谢@robertklep,我解决了这个问题:
//app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import {MenuModule} from 'primeng/primeng';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MenuModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }