mysql - 快速将值插入 MySQL 数据库

标签 mysql node.js express-4

问题解决了。请看下面。

我是 Express 和 NodeJS 的新手,放弃了 Laravel 和 PHP。

我想做的是能够将一条记录添加到 MySQL 数据库中,但我无法连接这些点。我正在学习本教程系列:

http://eddyjs.com/bookshelf-js/

http://eddyjs.com/using-mysql-with-bookshelf-js-part-2-using-the-database/

有两个数据库变量,我不明白如何使用它们。

这是错误。

Cannot read property 'extend' of undefined

TypeError: Cannot read property 'extend' of undefined at Object. (/Applications/MAMP/htdocs/myapp/myapp/models/User.js:5:20) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17)

我通过 npm 安装了所有依赖项,一切正常。

  "dependencies": {
    "body-parser": "~1.13.2",
    "bookshelf": "^0.8.2",
    "cookie-parser": "~1.3.5",
    "debug": "~2.2.0",
    "express": "~4.13.1",
    "jade": "~1.11.0",
    "jquery": "^2.1.4",
    "knex": "^0.8.6",
    "morgan": "~1.6.1",
    "mysql": "^2.9.0",
    "serve-favicon": "~2.3.0"
  }

我将我的模型保存在模型文件夹中。

用户.js

var db = require('./db');

var User = db.Model.extend({
    tableName: 'users'
});

module.exports = User;

路由/index.js

router.get('/add', function(req,res,next) {
  var User = require('../models/User');
  new User({
    'name': 'Edwin',
    'pet': 'dog'
  })
      .save()
      .then(function (newUser) {
        console.log('user created!', newUser);
      });
});

db.js(数据库连接应该打开一次,对吧?所以它必须住在这里)

   var knex = require('knex')({
    client: 'mysql',
    connection: {
        host     : 'localhost',
        user     : 'root',
        password : 'root',
        port    : 8889,
        database : 'databasename',
        charset  : 'utf8'
    }
});

var bookshelf = require('bookshelf')(knex);

var User = bookshelf.Model.extend({
  tableName: 'users'
});

最佳答案

如果我对你项目的目录结构理解正确的话,你的 routes 目录紧挨着 models 目录,对吧? 如果是这种情况,您需要将 routes/index.js 中的 require 更改为使用 ../,这样它就会到达正确的位置:

var User = require('../models/User');

关于mysql - 快速将值插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933105/

相关文章:

PHP - MySQL - GROUP BY/ORDER BY?错误的结果输出

java - 只有一个用户可以访问 spring security

node.js - 如何在 Express 应用程序上查找中间件的路径

node.js - Express 中间件无法捕获 async/await 抛出的错误,但为什么呢?

Python - 分离数据时抛出错误 - 列表索引超出范围

mysql - SQL语句运行缓慢

node.js - NodeJS 集群全局变量

node.js - WebRTC服务器 Node

javascript - 为什么使用 require './foldername/filename' 而不是 require 'foldername/filename' ?

node.js - 异步函数抛出错误 - 但调用它的快速端点 - 看不到它