我知道这之前已经被解决过,但我花了几个小时在这上面,似乎不知道如何将数据发布到node.js服务器...我已经使用cloud9和node开始了这个项目.js 所以我知道我已经安装良好并且我正在从一个工作站点开始。
我很快就会发送一个帖子请求,例如
func post (){
let url = URL(string: "https://the-game-stevens-apps.c9users.io/index.html/")!
var request = URLRequest(url: url)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Accept")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let postString = "name=henry&message=HelloWorld"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error=\(error)")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(responseString)")
}
task.resume()
}
然后在我的 server.js 文件中
var router = express();
router.use(express.urlencoded());
router.post('/index.html', function(req, res) {
var obj = {name:req.body.name,text:req.body.message};
});
我在 javascript 方面有丰富的经验,但对于 Node.js 我是个菜鸟,并且刚刚开始研究它,非常感谢任何帮助
最佳答案
我可以在你的node.js代码中纠正的唯一部分是
要获取路由器,您需要调用express.Router();
const express = require('express');
const router = express.Router();
router.use((req,res,next) => {
console.log("/" + req.method, "host"+ req.host, "Params" + req.params);
next();
});
router.post('/index.html', (req, res) => {
const obj = {name:req.body.name,text:req.body.message};
//insert obj into database
});
关于javascript - 将数据从 swift 发布到 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789735/