当POST和GET从Postman或chrome rest应用程序等发送时,我有一个功能正常的本地服务器。但是,无论何时我从ESP8266发送它都会失败,因为它遵循:
这是我的服务器端代码:
router.get('/', function (req, res) {
var person = req.query.id;
console.log("1");
Person.find({person: personID} ,function (err, station) {
if(err) console.log(err.message);
console.log("3");
res.send('test');
console.log("4");
});
console.log("2");
});
以下行是从 Chrome 发送请求时来自控制台。
1
2
3
4
GET /api?id=ABKWTltz6Ug 200 21.829 ms - -
以下行是从 ESP8266 发送请求时来自控制台。
1
2
GET /api?id=ABKWTltz6Ug - - ms - -
3
4
您可能会注意到,在 GET响应行之后,日志3和4 。我的ESP8266 TCP连接线与HTTP Message Format匹配:
GET /api HTTP/1.1
Host: *SERVER_IP_ADDRESS*
当我们从PHP切换到NodeJS后端服务器时出现的问题。 ESP8266用于连接和操作,没有问题。如果我删除Person.find代码块并移动res.send('test'),那么一切也工作正常。外部。
另一个新编写的后端代码,希望能够发现错误,如下所示。这是整个代码。这也返回了我之前提到的相同错误:
var express = require('express');
var app = express();
var router = express.Router();
var mongoose = require('mongoose');
var morgan = require('morgan');
app.use(morgan('dev'));
mongoose.connect('mongodb://localhost/test');
//mongoose.Promise = Promise;
var Test = mongoose.model('Test', { name: String });
router.get('/test', function (req, res) {
console.log("1");
var test1 = new Test({
name: "Name"
});
var query = test1.save();
query.then(function (doc) {
res.send('1').end();
console.log('3');
});
console.log("2");
});
app.use('/api', router);
var port = 9000;
app.listen(port,function(){
console.log('server started on', port);
});