javascript - Node.js 未从 'public/views' 路由渲染 html 页面

标签 javascript html node.js server

在从index.html执行xml http请求后,我试图渲染一些html,但服务器没有渲染我的html页面,即使日志看起来工作得很好:

<input type="button" id="response_2" value="No, let me create one :0" class="button" style="width: 100%; height: 100%" onclick="createAccount()">

这是在index.html中找到的按钮

function createAccount()     {
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", "/createAccount");
    xhttp.send();
}

这是 JavaScript 函数。也可以在index.html 文件中找到,该文件在按下“response_2”按钮时执行

    var express = require('express');
    var app = express();
    var http = require('http');
    var port = 3000;
    var bodyParser = require('body-parser');

    var httpServer = http.createServer(app);
    httpServer.listen(5500);

    app.use(express.static(__dirname + '/public'));
    app.set('views', __dirname + '/public/views');
    app.engine('html', require('ejs').renderFile);
    app.set('view engine', 'html');

    app.use(bodyParser.urlencoded({
    extended: true
    }));
    app.use(bodyParser.json());

    app.listen(port, () => console.log(`app listening on port ${port}!`));

    app.get('/', function (req, res) {
        console.log("someone here...");
        res.render('index.html');
    });

    app.get('/createAccount', function (req, res) {
        console.log("here!");
        res.render('createAccount.html');
    });

    app.get('/login', function (req, res) {
        res.render('login.html');
    });

    app.get('/forgotCredentials', function (req, res) {
        res.render('forgotCredentials.html');
    });

这是node.js服务器的配置

最佳答案

你的代码

app.get('/createAccount', function (req, res) {
  console.log("here!");
  res.render('createAccount.html');
});

这样,当有人在浏览器中访问 /createAccount URL 时,他们就会看到您告诉服务器返回的页面。您的 createAccount() 函数不会在浏览器中打开此 URL,它仅发出呈现该页面的请求,因此服务器会返回该页面,但您从未真正访问过它。

你为什么不直接使用

<a href='/createAccount'>
  <button>No, let me create one :0</button>
</a>

在您的页面而不是该输入元素中?

关于javascript - Node.js 未从 'public/views' 路由渲染 html 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57597625/

相关文章:

javascript - 即使在使用 javascript 重新加载后仍保留滚动条位置

javascript - Nodejs 从数据库中检索信息并传递给 JavaScript

html - Chrome/Firefox 布局很棒 - Safari 出现故障 - 没有使用 float

node.js - 如何阻止 async/await 在函数中冒泡?

javascript - 禁用表中带有复选框的按钮

javascript - Bootstrap 4 : Convert button-group to dropdown for small screens

javascript - Node.js HEAD 请求返回 HPE_INVALID_CONTENT_LENGTH 错误

jquery - 使用 JQuery 进行 Express 和 Ajax 发布

javascript - KnockoutJS "with"在模型可用之前绑定(bind)

javascript - 分离 HTML 和 JS