Node学习

参见Node入门 做出node应用的第一个例子 图片上传浏览。

 

过程中遇到的问题:

1.npm安装formidable模块失败的解决办法

 借鉴:解决途径

直接去github下载formidable模块(地址:https://github.com/felixge/node-formidable

2.运行错误:fs.js:330 return binding.rename(pathModule._makeLong(oldPath)

  借鉴:解决途径 中的代码:

 1 function upload(response, request) {

 2   console.log("Request handler 'upload' was called.");

 3   var form = new formidable.IncomingForm();

 4   form.uploadDir = "tmp"

 5   console.log("about to parse");

 6   form.parse(request, function(error, fields, files) {

 7     console.log("parsing done");

 8     console.log("F.U.P: " + files.upload.path);

 9     setTimeout(function(){

10     try{

11         fs.renameSync(files.upload.path, "./tmp/test.png");

12     }catch(e){

13         console.log(e);

14     }

15     response.writeHead(200, {"Content-Type": "text/html"});

16     response.write("received image:<br/>");

17     response.write("<img src='/show' />");

18     response.end();

19     },1000

20     );

21   });

22 }
View Code

3.运行错误 Error: ENOENT( 图片目录放置的问题)

  借鉴:解决途径

安装出错

借鉴: http://www.dedecms.com/knowledge/web-based/javascript-ajax/2012/0723/3484.html

最后的解决办法是:以管理员身份打开命令符,然后去安装,没想到成功了。记录忘记保存了,因为不知道可不可以用,现在证明可用。

 后面为啥还会有这个??

 途中还遇到个这样的问题  Error:listen EADDRINUSE 看到下面的解释就知道发生什么事了。。

CSS中的2个重要概念块状元素和内联元素 参考资料:来源

 对JS中的prototype的理解

 event.stopPropagation() 方法的理解:

 不再派发事件。

 终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调   用,事件不再被分派到其他节点。

//显示表情

  _showEmoji: function(msg) {

    var match, result = msg,

        reg = /\[emoji:\d+\]/g,

        emojiIndex,

        totalEmojiNum = document.getElementById('emojiWrapper').children.length;

    while (match = reg.exec(msg)) {

        emojiIndex = match[0].slice(7, -1);

        if (emojiIndex > totalEmojiNum) {

            result = result.replace(match[0], '[X]');

        } else {

            result = result.replace(match[0], '<img class="emoji" src="../content/emoji/' + emojiIndex + '.gif" />');

        };

    };

    return result;

}

从中学到的知识点有

1.reg.exec()

2.slice()

3.replace()

 GitHub代码更新问题

借鉴资料http://blog.csdn.net/shiren1118/article/details/7761203

 

Codeship初次见面:http://blog.codeship.io/2014/04/03/continuous-deployment-modulus-github-nodejs.html

Heroku的初次见面:https://devcenter.heroku.com/articles/getting-started-with-nodejs

http://www.oschina.net/question/12_17345  Node.js MVC框架学习

1.exports 相当于C#中的publish,当这个模块被require导入时,exports后的方法可以被访问到,具体看一个node的模块导入系统:

//test.js

var myPrivate = '私有';

exports.myPublish = '公开';

this.myPublish2 = 'this也可以哦';

console.log('test.js loaded \n');

执行结果:

从结果中我们可以看出exports和this下的变量在外部导入模块后,可以被外部访问到,而var定义的变量只能在脚本内部访问。  从mytest2结果还可以看出,第二次require导入test模块时,并没有打印"test.js loaded",因为require导入模块的时候,会先从require.cache中检查模块是否已经加载,如没有,才会从硬盘中查找模块脚本并加载。require支持相对路径查找模块,例如require('./test')中的"./"就代表在当前目录下查找。如果不是相对路径,例如require('http'),node则会到require.paths中去查找,看下自己的系统require.paths为:

这个要等等了,不知道为啥是这个了。。。

 

 

 

你可能感兴趣的:(node)