NodeJS URL路由和渲染HTML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS URL路由和渲染HTML相关的知识,希望对你有一定的参考价值。

我是nodejs编程的新手,现在我有一点问题。当我尝试去localhost:3000 /我想回家控制器和索引功能打印html文件。

APP.JS

const express = require('express')
const mongoose = require('mongoose')
const mongodb = require('mongodb')

const app = express();

const homeController = require('./home/homeController.js');


app.get('/', function(req, res) {
    res.redirect(homeController.index);
});

app.listen(3000, () => console.log('Example app listening on port 80!'))

HOMECONTROLLER.JS

var path    = require("path");

exports.index = function(req, res){
  res.sendFile(path.join(__dirname+'/index.html'));
};

console.log('test33');

此外,我使用导出将app.js与其他控制器分开。这是正确的方法吗?我有Python Django框架的历史,我们曾经使用URL来导航我们的程序。

谢谢。

OUTPUT

不能GET /function%20(req,%20res)%7B%0A%20%20res.sendFile(path.join(__dirname+'/index.html'));%0A%7D

答案

你的问题是homeController.index是一个函数,但你不是在调用它。更换:

app.get('/', function(req, res) {
    res.redirect(homeController.index);
});

有:

app.get('/', homeController.index);
另一答案

你的homeController.js导出index函数,需要两个参数reqand res。所以你必须相应地更新你的app.js:

app.get('/', function(req, res) {
  homeController.index(req, res);
});

编辑:顺便说一句,您的应用正在侦听端口3000

以上是关于NodeJS URL路由和渲染HTML的主要内容,如果未能解决你的问题,请参考以下文章

路由 前后端渲染 url hash 和 html5 history

nodejs之路由

Angular 和 NodeJS 中的路由问题 [angular]

nodejs动态路由

Nodejs学习笔记----- 路由和全局变量

nodejs进阶3-路由处理