首页 > 解决方案 > 如何在 HTML/EJS 页面中将节点 Js sql 查询结果显示为下拉列表

问题描述

我是 Node Js 的新手。目前正在寻找如何显示在 Node Js 中返回的查询值应该显示为选择选项的下拉值。

\views\home.EJS

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Get Text Input Field Value in JavaScript</title>
<link rel="stylesheet" type="text/css" href="graphites.css">
</head>
<body>


<h1>Generate the Graph</h1>

   
        <select class="form-control" id="sel1">
            <% for(var i=0; i < dropdownVals.length; i++) { %>
               <option><%= dropdownVals[i] %></option>
            <% } %>
            </select>    
 

    
    </select>
    <script type="text/javascript" src="graphs.js"></script>
    <button class="button" type="button" onclick="getInputValue();">Submit</button>
</body>
</html>

这是我的 app.js

app.js

var express = require('express');
var app = express();
var ejs = require('ejs');
var bodyParser = require("body-parser");
var router = express.Router();
app.set('view engine', 'ejs');
app.get('/', function (req, res) {
    var sql = require("mssql");
    // config for your database
    var config = {
        user: 'sa',
        password: 'Februarysriram82$',
        server: 'MAA-821Z33\\SQLEXPRESS',
        database: 'master',
        "options": {
            "encrypt": true,
            "enableArithAbort": true
        }
    };
    // connect to your database
    sql.connect(config, function (err) {
        if (err) console.log(err);
        // create Request object
        var request = new sql.Request();
        // query to the database and get the records
        request.query('select ACC_NBR from AUXI where CMPY_ID=00000339', function (err, recordset) {
        if (err) console.log(err)
        console.log(recordset)
        res.render("home", {dropdownVals:recordset});
        });
    });

    

});
var server = app.listen(5000, function () {
    console.log('Server is running..');
});

我的 package.json

{
  "name": "firstnodeapp",
  "version": "1.0.0",
  "description": "",
  "main": "home.js",
  "dependencies": {
    "body-parser": "^1.19.0",
    "ejs": "^3.1.6",
    "express.js": "^1.0.0",
    "mssql": "^6.3.1"
  },
  "devDependencies": {},
  "scripts": {
    "start": "node app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Changan",
  "license": "ISC"
}

当我给 npm start 或 node app.js

在控制台中,它正在打印..但在 html 中显示的是空值,,

有人可以帮忙吗?为什么它不显示节点js ..

标签: javascriptnode.js

解决方案


You must register the router and put listen out.

...
app.use('/', router);
var server = app.listen(5000, function () {
    console.log('Server is running..');
});

推荐阅读