Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要在node express和MVC中处理文件的帮助吗_Javascript_Jquery_Express_Post - Fatal编程技术网

Javascript 需要在node express和MVC中处理文件的帮助吗

Javascript 需要在node express和MVC中处理文件的帮助吗,javascript,jquery,express,post,Javascript,Jquery,Express,Post,这里我有5个文件,如你所见。是todo list应用程序在浏览器上显示todo(存储在todocontroller.js中的数据变量中),并使用输入字段将新输入添加为todo(数组中名为data的项)。现在的问题是,单击submit按钮后,它不会将输入的值添加到列表中。我不知道怎么了有人能帮我解决吗 todocontroller.js var express = require('express') var todoController = require('./con

这里我有5个文件,如你所见。是todo list应用程序在浏览器上显示todo(存储在todocontroller.js中的数据变量中),并使用输入字段将新输入添加为todo(数组中名为data的项)。现在的问题是,单击submit按钮后,它不会将输入的值添加到列表中。我不知道怎么了有人能帮我解决吗

todocontroller.js

    var express = require('express')
    var todoController = 
    require('./controllers/todoController')
    var app = express()
    
    app.set('view engine', 'ejs')
    
    app.use(express.static('./public'))
    app.use(express.urlencoded({extended: true}))
    app.use(express.json())
    
    todoController(app)
    
    app.listen(3000)
    console.log('Listening to port 3000...')
app.js

var data = [{item :'get milk'}, {item :'water'}, {item :'electricity'}]

module.exports = function(app){
    
    app.get('/todo', function(req, res){ 
        res.render('todo', {list : data})

    }) 
    
    app.post('/todo', function(req, res, next){
        console.log(req.body)
        data.push(req.body)
        res.send(data)
        next()
        
    }) 

    app.delete('/todo', function(res, req){
        
    }) 
}
todo.ejs

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Todo list app</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <link rel="stylesheet" href="/assets/styles.css" type="text/css">
</head>
<body>
    <h1>Todo list</h1>
    <div id="todo-table">
        <form>
            <input type="text" name="item" placeholder="Add an item...">
            <button type="submit">Add item</button>
        </form>
        <ul>
            <% for(var i=0; i < list.length; i++) { %>
                <li><%= list[i].item %></li>
            <% } %>            
        </ul>
    </div>
</body>
</html>
package.json

{
  "name": "node-js-playlist-master",
  "version": "1.0.0",
  "description": "CSS and asset files for the Net Ninja YouTube nodejs playlist",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "me",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "ejs": "^3.1.6",
    "express": "^4.17.1"
  }
}
请描述“它对我不起作用”是什么意思。是否有任何错误消息?它会做一些意想不到的事情吗?发生了什么?我所说的“它对我不起作用”是指当我在输入区域中添加一些输入时,它没有添加到todo列表中,没有任何更改。
{
  "name": "node-js-playlist-master",
  "version": "1.0.0",
  "description": "CSS and asset files for the Net Ninja YouTube nodejs playlist",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "me",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "ejs": "^3.1.6",
    "express": "^4.17.1"
  }
}