Javascript 尝试从html表单和Node.js发送数据

Javascript 尝试从html表单和Node.js发送数据,javascript,html,node.js,Javascript,Html,Node.js,我只是尝试在不使用Angular、React或其他框架库的情况下,将数据从静态html页面操纵到Node.Js。我已经安装了所有的依赖项,节点正在为我的index.html服务,但是,我似乎无法让我的post方法工作。我甚至无法将其发送到console.log。我已经查看了其他堆栈溢出问题和文档,但似乎无法找出问题所在 这是我的代码和文件结构 HTML: json: 我已经验证了您的代码,它运行得非常好 在使用city=Test提交时,我在浏览器中看到这个Json响应:{“city”:“Test

我只是尝试在不使用Angular、React或其他框架库的情况下,将数据从静态html页面操纵到Node.Js。我已经安装了所有的依赖项,节点正在为我的index.html服务,但是,我似乎无法让我的post方法工作。我甚至无法将其发送到console.log。我已经查看了其他堆栈溢出问题和文档,但似乎无法找出问题所在

这是我的代码和文件结构

HTML:

json:


我已经验证了您的代码,它运行得非常好

在使用city=Test提交时,我在浏览器中看到这个Json响应:
{“city”:“Test”}

另外,我很高兴看到你的日志报表打印出来。但是请记住,您的
console.log()
语句是
node.js
服务器代码的一部分,这意味着您的日志语句将打印在服务器日志中,而不是在浏览器控制台中。如果您使用
node server.js从终端运行节点服务器,您将看到您的日志打印在终端中


如果您多次修改了依赖项的版本,请删除
节点\u模块
目录,然后再次尝试运行
npm安装

我刚刚在本地进行了测试,在我将
\u目录名
更改为
\u目录名
后,该功能正常。编辑文件后是否结束/杀死节点服务器?我进行了更改并重新启动了节点。我刚刚更新到v1.11.0,也许这与此有关。我被难住了,这是金子。我几乎要去deepweb删除这些信息了。t不确定是否是因为更新的依赖关系,但帖子不会登录终端。我将我的package.json添加到post线程。@lonniemggill我也尝试过使用你的package.json,效果很好。如果您多次尝试更改依赖项的版本,只需删除
node\u modules
文件夹,然后再次运行
npm install
。我重新安装了所有内容,它可以正常工作。设置依赖项后,我更新到节点1.11.0。我不认为我需要删除json和节点模块,因为我没有更改依赖项版本,但看起来你需要。谢谢
<form id="citySearchForm" action="http://127.0.0.1:3000/getcity" method="POST">

        <div>
            <p>Choose a city:</p>
            <input type="text" placeholder="Enter a city" id="getCitiesInput" name="city"></input>
            <input type="submit" value="submit">
        </div>

        <div id="weather"></div>

        <p><span id="temp"></span></p>

        <p><span id="wind"></span></p>

 </form>
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false});

app.use(express.static('public'));
app.get('/index.html', function(req, res){
    res.sendFile(_dirname + "/" + "index.html");
})

app.post('/getcity', urlencodedParser, function(req, res){
    response = { city : req.body.city };
    console.log(response);
    res.end(JSON.stringify(response));
})

app.listen(3000, function() { console.log('listening')});
{
  "name": "basic_weather_api",
   "version": "1.0.0",
   "description": "Just a basic api call",
   "main": "server.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
      "start": "node server.js"
   },
   "author": "",
   "license": "ISC",
   "dependencies": {
     "body-parser": "^1.16.0",
     "express": "^4.14.1"
   }
  }