node拒绝从脚本中找到mysql

时间:2014-03-12 12:46:55

标签: mysql node.js

我想实现该节点在我的Windows 7(64位)计算机上从MySql打印一个表但是失败了。对不起提前的长帖,我试图完成,我也没能在论坛中找到这个错误。我在Notepad ++中输入的乐观mysql.js文件是

var mysql = require('node-mysql');
var connectParams = {'hostname' : 'localhost','user' : 'dev','password': 'dev','database' : 'upandrunning'};
var db = new mysql.Database(connectParams);
db.connect( function(err)   {
    if(err) return console.log('Failed to connect ' + err);

    this.query()
    .select(['id', 'user_login'])
    .from('users')
    .execute(
        function(err, rows, columns){
            if(err) return console.log('err on query '  + err);

            console.log(rows);
        })});

节点不断返回

C:\dev\nodejs\0.10\tutorials\node-up-and-running>node tutorials\node-up-and-running\mysql.js

module.js:340
throw err;
      ^
Error: Cannot find module 'C:\dev\nodejs\0.10\tutorials\node-up-and-running\tutorials\node-up-and-running\mysql.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3

为什么?

在节点命令之前我告诉Squirrel

drop database if exists upandrunning;
create database upandrunning;
grant all privileges on upandrunning.* to 'dev'@'%' identified by 'dev';
use upandrunning;
create table users(
id int auto_increment primary key,
user_login varchar(25),
user_nicename varchar(75)
);

使用我的localhost root帐户(坏),但一切似乎都很好,因为squirrel对象选项卡显示了新的upandrunning数据库。 Node.exe位于C:\ dev \ nodejs \ 0.10 \但是来自dos提示符:

C:\dev\nodejs\0.10\tutorials\node-up-and-running>node -v

给出

v0.10.26

我的文件mysql.js已经简化为

var mysql = require('node-mysql');

错误必须在哪里。我从C运行以下命令:\ dev \ nodejs \ 0.10 \ tutorials \ node-up-and-running>

npm install -g mysql
npm install -g node-mysql
npm install -g db-mysql

这些是我能找到的。  每次安装后都出现同样的错误。

有任何建议请如何让节点合作?

我承认我缺乏节点故障排除技巧,但是学习module.js应该没必要。 此外,您是否知道并享受工作,免费且易于使用节点的代码完成ide? 还有一些方法可以调试console.log()以外的其他方法吗? 最后你对减少关闭括号的布局惯例有什么看法,因为它们伤害了眼睛。

该网站建议来自NodeJS require a global module/package 但是如何在dos提示符下获取node_path变量以及如何设置它: C:\ dev \ nodejs \ 0.10 \ tutorials \ node-up-and-running>设置NODE_PATH

Environment variable NODE_PATH not defined

确定设置NODE_PATH = c:\ dev \ nodejs \ 0.10 C:\ dev \ nodejs \ 0.10 \ tutorials \ node-up-and-running>节点教程\ node-up-and-running \ mysql.js

 'node' is not recognized as an internal or external command, operable program or batch file.

关闭并重新打开dos会使其消失。

C:\ dev \ nodejs \ 0.10>设置NODE_PATH =%NODE_PATH%; C:\ dev \ nodejs \ 0.10 \ node_modules

它有效..但现在它失败了

var mysql = require('mysql');
var connectParams = {'hostname' : 'localhost','user' : 'dev','password': 'dev','database' : 'upandrunning'};
var db = new mysql.Database(connectParams);

C:\dev\nodejs\0.10\mysql.js:3
var db = new mysql.Database(connectParams);
         ^
TypeError: undefined is not a function
at Object.<anonymous> (C:\dev\nodejs\0.10\mysql.js:3:10)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3

如果我删除新的说

C:\ dev的\的NodeJS \ 0.10 \ mysql.js:3 var db = mysql.Database(connectParams);                 ^     TypeError:对象#没有方法&#39;数据库&#39;     在对象。 (C:\ dev的\的NodeJS \ 0.10 \ mysql.js:3:17)

使用REPL:

  

var mysql = require(&#39; mysql&#39;);   未定义   var connectParams = {&#39; hostname&#39; :&#39; localhost&#39;,&#39;用户&#39; :&#39; dev&#39;,&#39;密码&#39;:&#39; dev&#39;   &#39;数据库&#39; :&#39; upandrunning&#39;};   未定义   var db = new mysql.Database(connectParams);   TypeError:undefined不是函数       在repl:1:10       在REPLServer.self.eval(repl.js:110:21)       在repl.js:249:20       在REPLServer.self.eval(repl.js:122:7)       在界面。 (repl.js:239:12)       在Interface.EventEmitter.emit(events.js:95:17)       在Interface._onLine(readline.js:202:10)       在Interface._line(readline.js:531:8)       在Interface._ttyWrite(readline.js:760:14)       在ReadStream.onkeypress(readline.js:99:10)

1 个答案:

答案 0 :(得分:0)

你不应该像这样创建连接吗??

connection = mysql.createConnection({
                   host : 'localhost',
                   user : 'node',
                   password : 'UnPassword',
                   database: 'nodesql'
             });