2016-06-19 2 views
0

Как я могу перенаправить пользователя на действие show doc/post, которое он только что создал с помощью express.js?Как перенаправить созданный документ?

Вот код, я использую, чтобы создать документ:

app.post('/doc/create', docController.postCreate); 
app.get('/doc/:id', docController.getRecord); 

exports.postCreate = ((req, res, next) => { 

    const doc = new Doc({ 
    title: req.body.title 
    }); 

    doc.save(req.body, (err /*, result*/) => { 
    res.redirect('doc/{{{DOC_ID}}}'); // How can I get/pass the newly created ID 
    }); 

}); 
+0

Вы не получите идентификатор документа здесь. Вам нужно создать, возможно, базу DateTime Stamp на сервере или, альтернативно, вы можете передать заголовок документа, и этот идентификатор должен использоваться в качестве документа для получения файла в браузере. –

+0

Да, я знаю, что я не могу его получить. Но как я могу получить ссылку на документ, который я создаю? Можете ли вы более конкретно указать пример, который вы дали? Neverless Я попробую передать название при сохранении, как вы говорите ... Спасибо – agaezcode

+0

Да! Это решение. Я передам timestamp + title в действии POST и получаю записи по метке времени + в действии GET. Спасибо @AkshayKhandelwal – agaezcode

ответ

0

Отклик базы данных должен возвращать идентификатор созданного элемента.

// ucommment the result param 
doc.save(req.body, (err, result) => { 
    // ALWAYS handle errors! 
    if (err) return res.status(500).send('Internal server error'); 
    // hopefully, the id is at the root of the result object, else, find out where it is and use it 
    res.redirect('/doc/' + result.id); 
}); 
+0

да! Основанный на моем решении [выше] (http://stackoverflow.com/questions/37907615/how-to-redirect-to-created-doc/37911112#comment63270584_37907615), я обнаружил, что могу решить его таким образом. Во всяком случае, я как мое решение выше. спасибо – agaezcode

Смежные вопросы