简体   繁体   English

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

[英]How to display the node Js sql query results as dropdown in HTML/EJS page

I am new to Node Js.. Currently looking how to display the query values which is returned in Node Js should be displayed as dropdown value for select option..我是 Node Js 的新手。目前正在寻找如何显示在 Node Js 中返回的查询值应该显示为 select 选项的下拉值。

\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>

Here is my app.js这是我的 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..');
});

My package.json我的 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"
}

when I give npm start or node app.js当我给 npm 启动或节点 app.js

In console, it is printing.. but in html it is empty value displaying,,在控制台中,它正在打印.. 但在 html 中显示的是空值,,

Can any one help on this?有人可以帮忙吗? why it is not displaying node js..为什么它不显示节点js ..

You must register the router and put listen out.你必须注册路由器并把listen出来。

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

when I change当我改变

  res.render("home", {dropdownVals:recordset});

to

 res.render("home", {dropdownVals:recordset.recordset});

it brings the value它带来了价值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM