CNode

请教:new 的疑问

Pphilsong发布于14 年前最后回复14 年前5 回复4945 浏览0 收藏

请教:var mysql = new require('mysql');var express = require('express')为什么require mysql需要new出来,而express不需要呢?

查看回复

回复 (5)

J
j4cnodejs#1·14 年前

mysql 不是这样new 的, 你一定是看错了!正确的new法: var client = new require('mysql').Client({/这里是服务器连接配置/}); // 只是new了一个Client, 不是new mysql

P
philsong#2·14 年前
引用 j4cnodejsmysql 不是这样new 的, 你一定是看错了!正确的new法: var client = new require('mysql').Client({/ 这里是服务器连接配置 /}); //...

没看错 var mysql = new require('mysql'), db = null; if(mysql.createClient) { console.log("mysql.createClient"); db = mysql.createClient(db_options); } else { console.log("mysql.Client(db_options)"); db = new mysql.Client(db_options); db.connect(function(err) { if(err) { console.error('connect db ' + db.host + ' error: ' + err); process.exit(); } }); }

A
alli#3·14 年前

JS中的函数有多种调用方式,包括方法调用和new。 函数作为方法调用时,其this指向方法所属的对象,在函数中可访问所属对象的其它属性。 使用new创建实例时,其this指向函数对象本身,在函数中同样可访问该函数对象的其它属性,但不同实例的同名属性值是不一样的。

L
leolovenodejs#4·14 年前
var  client = require('mysql').createClient({'host':'localhost',
                                        'port':3306,
	                                    'user':'root',
	                                    'password':'123456'}),

现在可以不用new了
参与回复
登录后即可参与回复。登录