【问题标题】:How to connect sql server to app.js file?如何将 sql server 连接到 app.js 文件?
【发布时间】:2019-02-18 17:39:40
【问题描述】:

我有一个名为 NEsql 的文件夹,位于名为 sqlnames1 的文件夹中。在 NEsql 文件夹中,我有以下文件。

sqlcreatedb.js

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  /*Create a database named "mydb":*/
  con.query("CREATE DATABASE names", function (err, result) {
    if (err) throw err;
    console.log("Database created");
  });
});

sqlcreatetable.js

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "names"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  /*Create a table named "customers":*/
  var sql = "CREATE TABLE people (id INT AUTO_INCREMENT PRIMARY KEY, firstName VARCHAR(255), lastName VARCHAR(255))";
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("Table created");
  });
});

sqlinsertvalues.js

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "names"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  var sql = "INSERT INTO people (firstName, lastName) VALUES ?";
  var peoplenames = [
    ['Vedant', 'Apte'],
    ['Vedant', 'Savalajkar'],
    ['Vinay', 'Apte'],
    ['Varda', 'Apte'],
    ['Mihir', 'Wadekar'],
    ['Mihir', 'Kulkarni'],
    ['Eesha', 'Hazarika'],
    ['Eesha', 'Gupte'],
    ['Raunak', 'Sahu'],
    ['Hritvik', 'Agarwal'],
    ['Mahima', 'Kale'],
    ['Shivani', 'Sheth'],
    ['Arya', 'Chheda'],
    ['Diya', 'Shenoy']
  ];
  con.query(sql, [peoplenames], function (err, result) {
    if (err) throw err;
    console.log("Number of records inserted: " + result.affectedRows);
  });
});

所有这些文件都有效,因为我能够完成所有任务并成功接收所有相应的 console.log 语句。但是,我不确定我应该如何将这些文件连接到位于 sqlnames1 文件夹内的 app.js 文件。有人知道怎么做吗?

这是我的 app.js 文件。

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

【问题讨论】:

    标签: mysql sql node.js express npm


    【解决方案1】:

    您尝试做的可能只是 app.js 文件的内容,您可以在其中需要您的包并运行这些功能。但是,如果您选择该路线,则可以将它们存储在变量中,然后像这样使用 module.export

      variable_name = [desired content to export]
    
      module.export = variable_name
    

    如果您想通过与 app.js 不同的文件来构建数据库,您应该查看包 sequelize。这更符合您正在尝试做的事情。

    https://www.npmjs.com/package/sequelize

    如果您尝试在运行 app.js 时构建数据库,请回复您的评论。你最好再看看某种比 mysql 包做得更好的 ORM。有了它,您可以将 db 导入您的 app.js 并简单地使用

        require('path to db')
    

    然后按照你认为合适的方式使用数据库,但是再次以这种方式构建你的数据库将很难做到,因为你必须运行

        node filename.js
    

    对于每一个,所以如果不是续集,我强烈建议您查看另一个 ORM,它可以更快、更轻松地为您完成这项工作。一旦你运行你的 app.js,它就会构建然后运行,mysql 包并不是你想要做的最好的工具。

    【讨论】:

      猜你喜欢
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多