javascript - node.js 从 html 输入值

标签 javascript html node.js

我目前正在用 node.js 制作一个应用程序,想找到一种从 html 获取输入的方法。目前,我想要一个下拉菜单来调用一个函数并将选择用作函数的输入。但是,当我尝试调用基本函数(如 console.log('hello world');)时,没有任何反应。我正在使用 http 模块创建一个服务器,并使用另一个函数将 html 返回给本地主机上的用户。这是我的代码片段。

const http = require('http');

http.createServer(function (req, res) {
    var html = buildGreeter(req);
    res.writeHead(200, {
        'Content-Type': 'text/html',
        'Content-Length': html.length,
        'Expires': new Date().toUTCString()
    });
    res.end(html);
}).listen(8080);
function buildGreeter(req) {
var test = 'Test test test   ';
var input = '<select onchange = "myFunc()"> <option> foo </option> <option> bar </option> </select>';
return '<!DOCTYPE html> <html><header></header><body>' + test + input + '</body></html>';
}
function myFunc(variable){
    console.log(variable);
}

我应该使用另一个模块吗?我知道很多在线示例都将数据发送到服务器(即通过 Ajax),但由于我没有用于该项目的服务器,所以我不知道该解决方案的适用性如何。

提前感谢您的帮助!

最佳答案

我会使用 express输入npm i express即可安装node模块。下面是一个使用 express 设置服务器的示例,同时还实现了一些方法:

const express = require('express')
const renderHtml = require('./util').renderHtml // Render HTML function

let app = express() // Get instance of express server

app.get('/', renderHtml('index.html')) // Home page
app.get('/other', renderHtml('other.html') // Other page

const port = process.env.PORT || 3000
app.listen(port, function() {
  console.log(`Starting server on port ${port}`)
}

在另一个文件(我将其命名为 util.js)中,您可以编写在服务器上调用某些路径时要执行的函数。例如:

// Render any html file that I have in my './html' directory
exports.renderHtml = function (htmlFileName) {
  return function (req, res) { 
    res.sendFile(`./html/${htmlFileName}`)
  }
}

你可以像this example那样写一个下拉列表然后让 onChange 操作调用您在服务器中指定的另一个页面(例如,请参见第一个代码块)。

关于javascript - node.js 从 html 输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518720/

相关文章:

php - 使用 JavaScript 和 html 进行表单验证

javascript - Firefox 4 beta 不允许在新窗口中动态创建元素(Javascript)?

JavaScript 加密库?

javascript - jquery 将如何为移动设备实现触摸事件?

html - 链接到可折叠元素的子链接的 URL?

html - 电子邮件中的html与网页有何不同

javascript - 覆盖 console.log 时如何显示 Promise 对象的状态和值

javascript - 使用 grunt 加载 grunt-configs 和 Bower.install()

node.js - 使用for循环mongoose批量插入文档

javascript - 如何在 Windows 上安装 n?