Как подключить сервер sql к файлу app.js?

0

У меня есть папка под названием 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. Однако я не уверен относительно того, как я должен подключать эти файлы к файлу app.js, расположенному внутри папки sqlnames1. Кто-нибудь знает, как это сделать?

Вот мой файл 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;
Теги:
express
npm

1 ответ

0

То, что вы пытаетесь сделать, может просто быть содержимым файла app.js, в котором вы могли бы потребовать свой пакет и выполнять эти функции. Однако, если этот маршрут выбран вами, вы можете сохранить их в переменной, а затем использовать module.export

  variable_name = [desired content to export]

  module.export = variable_name

Если вы хотите создать базу данных через отдельные файлы, отличные от вашего app.js, вы должны посмотреть на пакет. Это больше похоже на то, что вы пытаетесь сделать.

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

Ответ на ваш комментарий, если вы пытаетесь построить db при запуске app.js. Вы снова лучше разбираетесь в ORM, который будет делать это лучше, чем пакет mysql. С его помощью вы можете импортировать db в свой app.js и просто использовать

    require('path to db')

затем, используя db, как вы сочтете нужным, но повторное построение вашего db таким образом будет затруднено, так как вам придется запускать

    node filename.js

для каждого отдельного, так что опять же, если не продолжать, я настоятельно рекомендую посмотреть на другой ORM, который сделает эту работу для вас намного быстрее и проще. Как только вы запустите приложение app.js, оно будет создано, а затем запустится, пакет mysql - не лучший инструмент для использования, как вы, кажется, пытаетесь сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню