2012-08-03 74 views
0

我使用命令“express -e sample”创建了一个简单的node.js项目。Node.js - 如何在express下导入公用文件夹中的依赖项模块

我有我的javascript,css文件在/ public目录和ejs文件下的意见和我的server.js是在根目录下。

我创建了一个表单页面,当用户提交时,我调用了一个位于/ public/javascripts下的js文件中的一个函数。

一切正常。我现在想将表单输入保存到我的数据库(mysql),所以我试图获得MySQL,但它失败了。警报声明表示该对象未定义。

var database = require('mysql').Client; 

但是,相同的命令在server.js中正常工作。它打印我的数据库属性。

+0

什么是你得到确切的错误信息?你如何“在我的一个js文件中调用一个函数在/ public/javascripts *”?你从哪里调用它? – penartur 2012-08-03 05:47:29

+0

@Penartur我在我的index.ejs文件中包含了javascript,并且提交按钮的onclick调用了该函数。例如:。 – Vinoth 2012-08-03 06:11:25

回答

1

<input type="submit" onclick="processFormData();"/>是在用户单击按钮后,在客户端(在浏览器中)调用processFormData();函数的代码。

因此,var database = require('mysql').Client;也在客户端上执行。

显然,浏览器中没有require;即使在浏览器中存在requiremysql库 - 可能您仍然希望从服务器而不是客户端(不向客户端发送数据库凭据)更改数据库。

为了做到这一点,你应该:

  1. 取出onclick处理程序,并让用户提交表单;
  2. 在服务器上,处理提交的表单数据并使用数据库进行任何操作。

另外,如果你想使用当前的“一次编写,随处运行”的方式,你可能感兴趣的替代平台,如MeteorOPA language

+0

我无法在思维中分离客户端和服务器端编码。现在我明白了。我改变了你的说法,它效果很好。我在服务器端处理POST请求并将数据插入到mysql中。谢谢。 – Vinoth 2012-08-03 15:15:39

相关问题