close

由於同學使用那個五行的資料是用node js 所寫成的,而node js是伺服器上使用的,用BROWSER並無法直接使用。

需要靠第三方套件來完成。而有許多不同的方法如使用ECMA 6的import 或使用require.js或是common.js來做。

但我目前試成功的只有browserify一種而己。在此做以下說明:

請參考以下文章

  1. https://hoohoo.top/blog/browserify-tutorial/
  2. https://javascript.ruanyifeng.com/tool/browserify.html

首先各位要先把node.js裝起來,再如以上資料加上browserfiy套件。(註:如果MAC上裝不起來記得用sudo,Windows應該是要用系統管理員權限)

sudo npm install -g browserify   
  • 再來,參考https://github.com/tony801015/chinese-lunar

測試一下五行程式是不是有安裝完成

1. 先做一個luck-test.js的程式

 

lunar = require("@tony801015/chinese-lunar");
console.log(lunar().getJson()); // 抓取目前的年,月,日

2. 然後在執行node luck-test.js會得到以下輸出代表有成功安裝。

[Running] node "/Users/samuelliu/Documents/教學研究及演講/教學/javascript/code-GOTOP/AEL023900_download/myWorkspace/luck-test.js"
{
  year: '2022',
  month: '05',
  day: '24',
  solarTerms: '小滿',
  lunarMonth: '四月',
  lunarDay: '廿四',
  lunarMonthDigit: 4,
  lunarDayDigit: 24,
  isLunarLeapMonth: false,
  leapMonth: 0,
  chineseYear: '壬寅',
  chineseMonth: '乙巳',
  chineseDay: '丁丑',
  chineseTimes: [
    '庚子', '辛丑',
    '壬寅', '癸卯',
    '甲辰', '乙巳',
    '丙午', '丁未',
    '戊申', '己酉',
    '庚戌', '辛亥'
  ],
  week: '2',
  animal: '虎',
  constellation: '雙子座',
  chineseFeb: false,
  nayin: '金',
  chineseTime: '丙午',
  chineseTimesTenGod: '請輸入年齡',
  chineseTimeTenGod: '請輸入年齡',
  chineseYearTenGod: '請輸入年齡',
  chineseMonthTenGod: '請輸入年齡',
  chineseDayTenGod: '請輸入年齡',
  dengGui: '申戌',
  lunarPerMonthHasDays: [
    '30', '29', '30',
    '29', '30', '30',
    '29', '30', '29',
    '30', '29', '30'
  ],
  solarTermDistance: {
    previous: {
      solarTerm: '立夏',
      diffDistanceDay: 19,
      diffDistanceDetail: 18.14877314814815
    },
    next: {
      solarTerm: '芒種',
      diffDistanceDay: 13,
      diffDistanceDetail: 13.017789351851851
    }
  },
  purpleWhites: [
    '二黑', '一白',
    '九紫', '八白',
    '七赤', '六白',
    '五黃', '四綠',
    '三碧', '二黑',
    '一白', '九紫'
  ],
  taiYuan: '丙申',
  mingGong: '丙午',
  shenGong: '壬子'
}

[Done] exited with code=0 in 0.053 seconds

再來就要使用browserify來編譯,由於要把jquery放在node.js程式中而不是放在html中,所以在先做以下安裝

npm install backbone jquery

1.再要做一個新的luck.js檔

const lunar = require("@tony801015/chinese-lunar");
//console.log(lunar().getJson()); // 抓取目前的年,月,日
const lun = lunar().getJson();
console.log(lun);
var $ = require('jquery');
$(function(){
    $("#id01").text(lun.animal);
});

 

再來做個luck1.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>五行測試</title>

</head>
<body>
<p>
<div  id="id01"></div>
</p>
<script src="bundle.js"></script>
</body>
</html>

最重要的是要把原本的luck.js 使用browserify轉譯成可被browser讀取的套件,此處命名為bundle.js

browserify luck.js > bundle.js    

如同上課方式一樣,檢單比較程式碼,就可以發現流覧器己經可以讀到生肖這個屬性了

Screen Shot 2022-05-24 at 12.06.06 PM.png

同學就可以如法泡製,做其他的應用。要注意需要每一次更新的jquery的程式碼寫到js後再編譯一次才行。

 

其他方法我沒有試出來,另外有試了用express.js架成伺json伺服器,但考慮資安問題,同學如果真的有問題我再來架設。

 

 

 

arrow
arrow
    全站熱搜

    liusming 發表在 痞客邦 留言(0) 人氣()