您的位置:首页技术文章
文章详情页

javascript - 为什么express,get的res.sendFile返回的是html纯文本?

浏览:109日期:2023-09-10 17:49:09

问题描述

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...’);

为什么

app.get(’/’, (req, res) => { res.sendFile(__dirname + ’/index.html’);});

返回的是html纯文本而不是文件?javascript - 为什么express,get的res.sendFile返回的是html纯文本?

但是

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 homepageapp.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 ...’);

就能正常显示网页?

问题解答

回答1:

第一个你设置了headerres.header('Content-Type', 'application/json;charset=utf-8');浏览器就会按照json解析

第二个,没设置,默认就是Content-Type:text/html; charset=utf-8自然就按照 html解析

回答2:

对头,设置Content-Type,你用Chrome浏览器看看http响应的header对不对。

标签: JavaScript