我使用命令“express -e sample”创建了一个简单的node.js项目。
我在/ public目录下有我的javascript,css文件,在视图下有ejs文件,我的server.js在根目录下。
我创建了一个表单页面,当用户提交它时,我在我的一个js文件中调用一个函数,该文件位于/ public / javascripts下。
一切都很完美。我现在想将表单输入保存到我的数据库(mysql)所以我试图获取mysql但它失败了。警告声明表示该对象未定义。
var database = require('mysql').Client;
然而,相同的命令在server.js中工作正常。它打印我的数据库属性。
答案 0 :(得分:1)
<input type="submit" onclick="processFormData();"/>
是用户单击按钮后在客户端(在浏览器中)调用processFormData();
函数的代码。
因此,var database = require('mysql').Client;
也在客户端上执行。
显然,浏览器中没有require
;即使浏览器中有require
和mysql
库,您可能仍希望从服务器而不是从客户端(不向客户端发送数据库凭据)对DB进行更改。
为了做到这一点,你应该:
onclick
处理程序并让用户提交表单; 或者,如果您想使用当前的“一次编写,随处运行”方法,您可能会对其他平台感兴趣,例如Meteor和OPA language