Tag Archives: NodeJs

RaspberryPi install NodeJs 6.x / 7.x – 如何在RaspberryPi 安裝 NodeJs

今日嘗試在RaspberryPi上安裝Johnny-Five /CylonJs 時出現NodeJs 的版本問題
但是執行

sudo apt-get install node

他說 NodeJs已經安裝了

做了一會research 之後 發現我們可以使用以下方法來更新這個NodeJs

解決方法
我𠍒可以在Terminal 上執行以下command
NodeJs 6.x

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

NodeJs 7.x

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

Install NodeJs on RaspberryPi

完成後再次執行

sudo apt-get install node

詳情可以參考以下網頁
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

Hope you find it useful

NodeJs Get Parameters

今日既NodeJs 筆記是用來記錄一個十分簡單的功能
就是 Get Query String或是取後 GETparamater.

解決方法
我們可以使用 req.query[‘ParameterName’] 來取得 parameter 的value

 if(req.query['location'] == undefined){
    console.log("No parameter named 'location'");
 }else{
     console.log(locaton);
}

Hope you find it useful

NPM / NodeJs not working on Ubuntu – NPM / NodeJs沒有反應

今日嘗試使用 Node的時候.發現他沒有反應..
不論我輸入什麼npm指令都是沒有輸出任何東西
NPM / Node JS not working, no output
E.G.

npm -v

node -v

做了一會research 之後發現應該是我的 NodeJS Module Corrupt 了
解決方法..
重新Install NodeJs 便可以了

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

NodeJs / NPM issue resolved by reinstalling NodeJS
更多安裝NodeJs的詳情可以參考以下網頁
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

Hope you find it useful

NodeJs Form Post req.body empty – NodeJs Form Post 問題

在學習NodeJs時嘗試建立一個簡單的 Contact Form
Post DataBackend 之後便用 Email API 去Email Contact Form 的內容給自己
做了很多Research 都是取不到 Contact formparameters

好多教學都是這樣 define “body-parser” 便可以
我的NodeJs BackEnd 程式碼
希望收到資料之後 用nodeJsConsole把 收到的email 輸出來
用來debug. 去確保我程式碼真的做到想做的功能
可惜都是不成功

以下昰小弟最後的製成品..
希望有用吧

解決方法

E.g.

var express = require('express');

// Body Parser need to declare on app.js,
// tried to declare on the route and it does not work
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended : true}));
// my route for the contact form
    homeRouter.route('/contact')
        .get(function(req, res) {
            res.render('home/index', {
                title: 'ShareChiWai',
                nav: nav,
                content: 'contact'
            });
        })
// route for the function to sent email
  homeRouter.route('/emailSent')
    .post(function(req, res) {
      console.log("Begin");
      console.log(req.body.email);
      console.log("end");
    
      res.send(req.body.email);
    });

Full source code 可以參考我在GitHub上的程式碼
https://github.com/sharechiwai/NodeExpress
有時間希望可以一個full demo 只是for contact form.

Main Application
https://github.com/sharechiwai/NodeExpress/blob/master/app.js

Home Route
https://github.com/sharechiwai/NodeExpress/blob/master/src/routes/homeRoutes.js

Hope you find it useful

NodeJS – ejs reference to root path – HTML reference to root Path for the JS/CSS/Image File

HTML reference to root Path for the JS/CSS/Image File
今天在學習NodeJS with Express 又遇到問題了
就是不知道怎樣可以reference 返D Javascript /CSS 檔案到 Root Path/ Root Directory
之前用 Codeigniter 可以使用 base_url()
ASP.Net MVC 可以用

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/jquery")

當我使用路徑”css/bootstrap.min.css“.. 在其他的path 便出現問題
<pre>
<link rel=”apple-touch-icon” href=”apple-touch-icon.png”>

<link rel=”stylesheet” href=”css/bootstrap.min.css”>
<style>
body {
padding-top: 50px;
padding-bottom: 20px;
}

</style>
<link rel=”stylesheet” href=”lib/bootstrap/dist/css/bootstrap-theme.min.css”/>
<link rel=”stylesheet” href=”css/main.css”>
<script src=”lib/jquery/dist/jquery.js”></script>
<script src=”lib/bootstrap/dist/js/bootstrap.min.js”></script>
</pre>
解決方法十分簡單..
只要在 路徑開頭加上 “/” 便可以了
e.g.
“/css/bootstrap.min.css

<pre>
<link rel=”stylesheet” href=”/css/bootstrap.min.css”>
<style>
body {
padding-top: 50px;
padding-bottom: 20px;
}

</style>
<link rel=”stylesheet” href=”/lib/bootstrap/dist/css/bootstrap-theme.min.css”/>
<link rel=”stylesheet” href=”/css/main.css”>
<script src=”/lib/jquery/dist/jquery.js”></script>
<script src=”/lib/bootstrap/dist/js/bootstrap.min.js”></script>
</pre>

hope you find it useful
如果有更好的解決方法..希望你可以和大家分享

Solve nodejs Access-Control-Allow-Origin header Issue 如果在NodeJS上解決”Access-Control-Allow-Origin header” 問題

之前在NodeJs寫了一個API 來方便自己去取資料..
誰不知當我在其他網頁用這個API 時出現了”Access-Control-Allow-Origin header” 的問題..

Origin file: not found in Access-control-Allow-Origin header.
Origin file: not found in Access-Control-Allow-Origin header

做了一會Research後 找到了解決方法了
我們只需要加入以下的”allowCrossDomain” 功能 便可以了
解決方法

var express = require('express');

var app = express();

// Code to solve the Access-Control-Allow-Origin header Issue
var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');

   // intercept OPTIONS method
    if ('OPTIONS' == req.method) {
      res.send(200);
    }
    else {
      next();
    }
};


app.use(allowCrossDomain);

Hope you find it useful

Online cURL Proxy / API – bypass Origin file: not found in Access-Control-Allow-Origin header issue

很多時候找到一些有趣的API
我們可以直接把這個APIURLQuery String放在browser上而取得Data
但當我們使用Javascript E.G. JQuery $.get 時便會出現以下的錯誤信息
Origin file: not found in Access-Control-Allow-Origin header

XMLHttpRequest: Network Error 0x80700013, Could not complete the operation due to error 80700013.”
Origin file: not found in Access-control-Allow-Origin header.

解決方法
我們可以用cURL 來解決這個問題..
由於我久不久便有這個問題出現..
所以便用nodeJS 來起了一個功能和大家分享.
http://sharechiwainodeexpress.herokuapp.com/curl?url={URL-to-CURL}

E.g.
http://sharechiwainodeexpress.herokuapp.com/curl?url=http://blog.sharechiwai.com

可以用他當作proxy 吧

Hope you find it useful