javascript - NodeJS URL 路由和渲染 HTML

标签 javascript node.js express

我是 Nodejs 编程新手,现在遇到了一些问题。当我尝试访问 localhost:3000/时,我想访问 homeController,索引函数会打印 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 与其他 Controller 分开。这是正确的方法吗?我有使用 Python Django 框架的历史,我们过去常常使用 URL 来导航我们的程序。

谢谢。

输出

Cannot 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);

关于javascript - NodeJS URL 路由和渲染 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49074205/

相关文章:

javascript - Socket.io 与 require.js 异步且 io 未定义

javascript - Karma (mocha) - 每当单元测试失败时出现意外的标记 N

javascript - onclick使用JS在新窗口中打开表格

javascript - 如何将按钮动态附加到 div

javascript - 使用 React 和 Ant Design 的 float 标签

node.js - 将 WebStorm 连接到远程 node.js 调试 session

node.js - socket.on 事件被多次触发

javascript - process.env.NODE_ENV 是否自动设置为 'production' ?

node.js - 静态中间件文件何时发送到客户端,使用node.js

javascript - 使动画插件工作的问题