【发布时间】:2018-03-28 10:35:27
【问题描述】:
我试图创建一个带有一些服务器端功能的简单网页,但不知何故,有两件事没有按预期工作。
通过 html 按钮即时运行执行 http post 请求的客户端 javascript。
客户端javascript
httpRequest = new XMLHttpRequest()
httpRequest.open('POST', '/test2')
httpRequest.send(var1,var2,var3,var4);
服务器.js
var express = require('express');
var bodyParser = require("body-parser");
var dbFunc = require("./dbFunctions.js");
var app = express();
var path = require('path');
var port = 8888;
//allow to use body-parser
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//allow to use static files
app.use(express.static("public"));
//listen to smth
app.post('/test2', function (req, res) {
console.log("worked");
});
//start server
app.listen(port);
console.log("Server running on port" + port);
我的服务器检测到这个 post http 请求并执行“console.log”,但我如何从 http.request 获取参数作为变量?我尝试使用 bodyParser 但不知何故我的对象总是空的。
另一件事是,我创建了另一个 Javascript 文件(dbFunctions.js)并在服务器文件中实现了它,但是如果我尝试运行一个函数(例如 dbFunc.test("hello")),它会显示“dbFunc.测试不是函数”。
dbFunctions.js
function DBFunctions(){
function test(a){
console.log(a);
}
}
我也尝试过这样做,但这给了我同样的错误。
function test(a){
console.log(a);
}
有人可以给我一个提示或告诉我我缺少什么吗?
【问题讨论】:
-
使用
HMLHttpRequest.send(),您需要确保传入该函数所期望的内容,它不需要多个参数。 developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send -
testinsideDBFunctions不能被test.DBFunctions访问
标签: javascript node.js http express