Массивы в E JS, возвращающие неопределенное и нулевое значение в NodeJS - Express - PullRequest
0 голосов
/ 02 августа 2020

Это мой e js код

<% var tag = [''] %>
<form action="/like" method="POST">
    <% for (var i in tag){%>
        Tag: <input type="text" name="likes[]" value="<%= tag[i].likes %>"/><br><br>
             <button type="submit" value="accept">Send Tag</button><br><br><hr>
    <%} %>
</form>

Это мой контроллер. js код

control.post('/like', (req, res, next) => {
    let tags = [req.body.likes];
    console.log(tags);
    iglike(tags);
    next();
    res.send(tags);
     
});

Когда я удаляю [] из name = "likes[]" код возвращает введенные данные идеально.

Но на name = "likes[]" код возвращает undefined в журнале консоли.

Например: С лайками []

Input : App, Web

Output: [null] , In Console: Undefined

Без лайков []

Input: app, web
Output: ['app, web'] ( Stores them into single array)

Я хочу, чтобы мой вывод был

Input: app, example, thanks
Output: ['app','example','thanks']

Я использую E JS механизм просмотра и node- express Я добавил app.use(express.urlencoded({extended: false})) код в моем приложении. js тоже.

1 Ответ

0 голосов
/ 02 августа 2020

Измените расширенное значение на true:

app.use(express.urlencoded({extended: true}))

И удалите квадратные скобки из req.body.likes:

let tags = req.body.likes;
...