let express = require('express');
let db = require('./db/db');
let app = express();
app.all('*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
let apiRoutes = express.Router();
apiRoutes.get('/seller', function (req, res) {
db.find(req.query.id, function (err, result) {
if (err) {
console.log('Error:' + err);
return;
} else {
let seller = result[0].toObject();
delete seller.goods;
delete seller.ratings;
res.json({
errno: 0,
data: seller
});
}
});
});
apiRoutes.get('/goods', function (req, res) {
db.find(req.query.id, function (err, result) {
if (err) {
console.log('Error:' + err);
return;
} else {
res.json({
errno: 0,
data: result[0].toObject().goods
});
}
});
});
apiRoutes.get('/ratings', function (req, res) {
db.find(req.query.id, function (err, result) {
if (err) {
console.log('Error:' + err);
return;
} else {
res.json({
errno: 0,
data: result[0].toObject().ratings
});
}
});
});
app.use('/api', apiRoutes);
app.listen(3000);
console.log('Listening on port 3000...');
Why
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
Is HTML plain text returned instead of a file?
but
var express = require('express');
var bodyParser = require('body-parser');
var db = require('./validate');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
// respond with "hello world" when a GET request is made to the homepage
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.post('/dosomething', (req, res) => {
var message = req.body;
db.create(message.name, message.age, message.city, function (err, mes) {
if (err) {
throw err;
} else {
console.log(mes);
}
});
})
app.listen(1212);
console.log('is ok ...');
Can the web page be displayed normally?
First you set the header
res.header("Content-Type", "application/json;charset=utf-8");
The browser will parse it according to json
The second one is not set, the default is
Content-Type: text/html; charset=utf-8
Naturally it is parsed according to html
Yes, set the Content-Type. Use the Chrome browser to see if the header of the http response is correct.