NodeJS URL路由和渲染HTML

时间:2018-03-02 17:20:35

标签: javascript node.js express

我是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来导航我们的程序。

感谢。

输出

  

无法获得   /function%20(req,%20res)%7B%0A%20%20res.sendFile(path.join(__目录名+' /index.html'));%0A%7D

2 个答案:

答案 0 :(得分:2)

您的问题是homeController.index是一个功能,但您没有调用它。替换:

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

使用:

app.get('/', homeController.index);

答案 1 :(得分:1)

您的homeController.js导出index函数,该函数需要两个参数reqres。 因此,您必须相应地更新您的app.js:

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

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