我正在尝试为Nodejs创建一个简单的端点,但是它不起作用。这是我的文件夹结构
index.js (位于root / src中)
'use strict';
var express = require('express'),
bodyParser = require('body-parser'),
path = require('path');
//init the app by serving index file
var app = express();
var port= process.env.PORT || 5000;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/', express.static('public'));
app.get('/endpoint',function(req,res) {
console.log("clicked");
res.send("hey");
})
app.listen(port);
index.html (位于根目录/公共目录中):
我无法在此处输入html元素...但是div中仅包含一个id = test的按钮
app.js (位于root / public / js中)
$('#test').on('click',function(e) {
$.ajax({
url: "/endpoint",
type: "GET",
success: function (result) {
console.log(result);
},
error: function(result) {
console.log(result);
}
})
})
控制台输出的结果是整个index.html页面的HTML内容,而不是单词“嘿”(我的Git控制台也不输出单词“ clicked”,这也意味着我的app.get / enpoint无所作为)。
更新:我找到了原因 在我的index.js中,我有这个
app.use(function(req, res) {
res.sendFile(path.join(__dirname, '../public', 'index.html'));
});
这样做的目的是为了防止用户进入其他模板后重新加载页面时出现“无法获取”错误。当我删除它时,一切都按预期工作(现在,除非用户重新加载页面,否则会收到错误消息)