Ответ 1
Ваш код работает как ожидалось: вызов ajax
указывает url: '/test/:uid'
, что помещает :uid
в req.params.uid
.
Попробуйте отправить что-то еще: url: '/test/123'
и req.params.uid
будет содержать 123
У меня есть url, я пытаюсь получить идентификатор, но ни один из них не работает с req.params или req.query
app.get('/test/:uid', function testfn(req, res, next) {
debug('uid', req.params.uid); // gives :uid
debug('uid', req.query.uid); // gives undefined
});
Я делаю вызов ajax, подобный этому
$(document).on('click', 'a.testlink', function(e) {
$.ajax({
type: "GET",
url: '/test/:uid',
success: function(var) {
console.log('success');
},
error: function() {
alert('Error occured');
}
});
return false;
});
Я использую
app.use(express.json());
app.use(express.urlencoded());
вместо анализатора тела
Ваш код работает как ожидалось: вызов ajax
указывает url: '/test/:uid'
, что помещает :uid
в req.params.uid
.
Попробуйте отправить что-то еще: url: '/test/123'
и req.params.uid
будет содержать 123
Вот пример, который будет работать. Я дам пошаговые инструкции с самого начала:
express myproject
cd myproject
npm install
Откройте приложение app.js и добавьте следующее в файл - возможно, прямо перед строкой app.get('/test/:uid',test);
var test = function(req,res,next) {
// do whatever logic is needed
res.end('Displaying information for uid ' + req.params.uid);
}
app.get('/test/:uid',test);
Теперь откройте новый терминал, убедитесь, что вы находитесь в каталоге myproject и введите:
node app.js
Теперь вы можете посетить http://localhost:3000/test/45
на локальном компьютере, и вы должны увидеть:
Displaying information for uid 45
Если вы не получаете доступ к своему локальному компьютеру, обязательно измените URL-адрес выше, чтобы он соответствовал любому серверу, на котором запущено приложение node.
Кроме того, это простой пример. Возможно, вам лучше организовать все, поместив маршруты в файлы, похожие на настройки примера каталогов маршрутов, в новой установке экспресс-приложения. Вы можете найти более подробные примеры этого в Интернете, например this и this. Кроме того, одно из лучших объяснений организации/повторного использования кода в node, которое я видел, находится в книге NodeJS в действии.