?? Может быть, вы можете попробовать этот код ниже: 100
Приложение. js
var express = require('express');
var morgan = require('morgan');
var path = require('path');
var bodyParser = require('body-parser');
var port = process.env.port || 3000;
var app = express();
app.engine('.ejs', require('ejs').__express);
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(morgan('dev'));
app.get('/', (req, res) => res.render('user', { name: ''}));
app.post('/profile', function(req,res){
var { name } = req.body;
res.render('profile', { name });
});
app.listen(port, function(err){ if(err) throw err; console.log('Server running On Port : ' + port)});
?? А теперь ваш, user.ejs
будет выглядеть так, как показано ниже: 9
user.e js
<form action="/profile/<%= name %>" method="POST">
<input type="text" name="name">
<button><a>Add</a></button>
</form>
Если вы хотите, чтобы ваш URL был похож на это: http://localhost:1001/profile?name=yourname
тогда вам нужно всего лишь изменить метод POST
на GET
для вашего App.js
и для вашего user.ejs
метода формы.
? Обновлено: Если вы хотите, чтобы ваш URL-адрес выглядел следующим образом: http://localhost:1001/profile/yourname
, чем вы можете изменить маршрут /profile
с помощью следующего кода:
app.get('/profile', function(req,res){
const { name } = req.query;
res.redirect('/profile/' + name.replace(/ /g, '-') );
});
app.get('/profile/:name', (req, res) => {
const { name } = req.params;
res.render('profile', { name : name.replace(/-/g, ' ') });
})
? Если вы используете указанный выше маршрут, убедитесь, что , в вашем user.ejs
все еще используется метод GET
.
Надеюсь, это поможет вам ?.