Express.js Router не работает даже в простом случае на моем сервере - PullRequest
0 голосов
/ 13 мая 2018

У меня проблема с использованием express.Router().Это не работало в моем приложении к серверу JSON из MongoDB, поэтому я попытался сделать то же самое в простейшем случае, но в запросе у меня ошибка 404 Not Found.Что мне с этим делать?

App.js

// include all modules
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var PageScheme = require('./lib/PageScheme');
//var sendPages = require('./routes/sendPage');
//var serveMain = require('./routes/serveMain');
var testserv = require('./routes/test');
var app = express(); //use express.js as an framework in application

//switch on all features to work with the requests
app.use(bodyParser.json()); // support json encoded bodies from requests
app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies from requests

//add reference to directory and next resolve all names of directory to send static files
app.use(express.static(path.resolve(__dirname, 'public'))); 
app.use('/css', express.static(__dirname + '/css'));
app.use('/js', express.static(__dirname + '/js'));
app.use('/img', express.static(__dirname + '/img'));

//this is my route ! 
app.use('/test',testserv);

app.get('/', function (req, res) {
  res.sendFile('generator.html', {
    root: __dirname
  });
});

app.listen(process.env.PORT || 9000, process.env.IP || '0.0.0.0');

test.js

var express = require('express');
var router = express.Router();

// route some test text.
router.post('/test', function (req, res) {
  res.send('Some text ...');
});
module.exports = router;

1 Ответ

0 голосов
/ 13 мая 2018

Возможно, 404, потому что Express не может найти маршрут.Вы делаете запрос как http://.../test/test?Если нет, то это, вероятно, проблема.Когда вы определяете маршрут в файле test.js, вы указываете ему маршрут /test, а затем в app.js вы говорите, что все мои маршруты в test.js должны быть основанием /test.Я бы порекомендовал определить маршрут в test.js следующим образом:

// route some test text.
router.post('/', function (req, res) {
  res.send('Some text ...');
});
module.exports = router;

Таким образом, это ваш базовый POST-маршрут для модуля test.js, поэтому вы должны сделать запрос с помощью http://.../test/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...