แสดง. Text มี 2 แบบ เป็น HTML และ Text ต้องบอก res.type('txt'). ถ้าไม่นั้นต้อง .replace('\n', <br/>)
วันอังคารที่ 20 ตุลาคม พ.ศ. 2563
NodeJS ส่ง Print Text จริงๆ
การให้ NodeJs เรียก PHP
PHP เป็นระบบ Application Run เป็น Interpreter และ NodeJs ก็คล้ายกัน แต่ NodeJs เป็นทั้ง Server และ Client App ทั้ง 2 แบบมี จำนวนมาก เพื่อให้ run ใน Port 80 เหมือนกัน ต้องให้เป็น Host 1 ตัว
เลือก NodeJs เป็น Host
1.ติดตั้ง nodejs และ php ให้เรียบร้อย
2.ใน Node directory
npm install express
npm install exec-php
3. code ของ PHP
เช่น
<?php
วันศุกร์ที่ 16 ตุลาคม พ.ศ. 2563
การ Run node background ใน FreeBSD
จะ run Node ต้องเช็ค Port ก่อน ใช้ socks tat
socks tat -4 -l
ดูว่ามี Process ใหน Lock port แล้ว
kill -9 <pid>
ถ้าไม่ได้ ต้อง sudo kill -9 <pid>
สำหรับ run ให้ ใช้
nohub npm run start &
ตรวจว่า มี error ที่ nohub.out
ถ้า ไม่ได้ ต้องใช้ sudo nohub npm run start &
วันอังคารที่ 29 กันยายน พ.ศ. 2563
load และ save Autodesk forge Viewer measurement
คำสั่งใน Javascript สำหรับ Forge Viewer Measurement Extension V7.x
const extension = viewer.getExtension('Autodesk.Measure');เมื่อ เขียน จะได้ array ของ measurement
var xx1=extension.getMeasurementList()
var xx2=xx1[0] สมมติเอาตัวที่ 0
ไปลบ measurement ออกให้หมด. extension.deleteMeasurements()
extension.setActive(true);
extension.setMeasurementList(xx2)
extension.setActive(false);จะแสดงกลับมาต้องการ Calibrate ให้
extension.forceCAlibrate=1
แล้วเลือกวาง Measurement
c# เชื่อม mongodb
Mongodb ที่จะเชื่อมให้ทดสอบ จาก Command line ก่อนว่า Ip และ port ใช้ได้ใหม
จากนั้น ติดต่อโดย
สร้าง Class ให้ตรงกับ ใน Database
เช่นใน Database ชื่อ admin และ มี Collections students
- _id:5f732bb0bbf8cd98789271b8
- name:"abcd"
- data:"xxx"
สร้าง Class
public class studentsinfo
{
public ObjectId _id { get; set; }
public string name { get; set; }
public string data { get; set; }
}
ในการติดต่อให้ ติดต่อโดนลง nuget ใน Visualstudio
nuget install mongoldb.driver
สำหรับ Code ใน C#
{
List<string> names = new List<string>();
// user : password @ip:port. / database assign to
MongoClient client = new MongoClient("mongodb://admin:passw@192.168.4.1:2277/admin");
var myDB = client.GetDatabase("admin");
var Students = myDB.GetCollection<studentsinfo>("students");
foreach (studentsinfo Astudent in Students.Find(name=> true).ToList())
{
names.Add(Astudent.name);
}
ListBox1.DataSource = names;
ListBox1.DataBind();
}
สำหรับ Insert
{
var dbClient = new MongoClient(constr);
IMongoDatabase db = dbClient.GetDatabase("admin");
var cdb = db.GetCollection<BsonDocument>("students");
var doc = new BsonDocument
{
{"name", "BMW"},
{"data", "34621"}
};
cdb.InsertOne(doc);
}
ถ้า Update ต้องมี 3 คำสั่ง filter,updatedata,Update
var filter = Builders<BsonDocument>.Filter.Eq("name", "ชื่อ");
var update = Builders<BsonDocument>.Update.Set("data", 52000);
cdb.UpdateOne(filter, update);วันจันทร์ที่ 28 กันยายน พ.ศ. 2563
javascript ใน ASPX call และ ส่ง Data Method ใน c#
ASP เป็น ระบบโปรแกรมที่ใช้ทำ Web ของ Microsoft IIS สามารถทำงาน เชื่อมกับ Javascript ได้
โดยใช้
[WebMethod] ก้บ asp:ScriptManager
ตัวอย่างจะมี Button ทั้ง 2 ชนิด เป็น Asp:Button และ html button
code ใน Client Front
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function SendToback() {
var name = document.getElementById('<%=txtname.ClientID %>').value;
var testStr = "client";
PageMethods.doBackEnd(name, testStr, onSucess, onError);
function onSucess(result) {
alert(result);
}
function onError(result) {
alert('Something wrong.');
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>Javascript send to Postbacks.</p>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
<br />
<asp:Button ID="btnCreateAccount" runat="server" Text="Asp" OnClientClick="SendToback(); return false;" />
</form>
<input id="Button1" type="button" value="html" onclick="SendToback();" /></div>
</body>
</html>
สำหรับ back ใน c#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string doBackEnd(string name, string text)
{
string result = "Receive " + name + ". text = '" + text + "'.";
return result;
}
}
วันอาทิตย์ที่ 27 กันยายน พ.ศ. 2563
การเชื่อมโยง Web html. javascript client กับ NodeJs server
การส่งค่า ระหว่าง Web Html กับ NodeJs ทั้ง 2 ทาง ทำได้ 2 วิธี คือ เป็น Web Post กับ Javascript
ใน ส่วนของ server จำเป็นต้อง Install Tool เพิ่ม 2 ตัว ได้แก่ express กับ body-parser
สร้าง folder เช่น nodeExpress
คำสั่ง
cd nodeExpress
npm install express
nom install body-parser
File server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// ให้ แยก body ทำ Urlencode
app.use(bodyParser.urlencoded({ extended: true }));
//ส่ง Index.html ให้แสดงเป็น Root
app.get('/', function(request, response){
response.sendFile(__dirname+'/index.html');
});
// สำหรับการ Form Post
app.post('/example', (req, res) => {
console.log(req.body.fname) // ระวังการใช้ Quote จะใช้ กับ Express ต้องเป็นแบบตย
res.send(`Full name is:${req.body.fname} ${req.body.lname}.`);
console.log(`${req.body.fname}`);
});
// สำหรับ javascript
app.post('/foo', foo);
function foo(req, res){
console.log(req.body); // ที่รับมา
res.send('hello world'); // ส่งกลับ
};
// port
const port = 8090;
app.listen(port, () => {
console.log(`Server running on port${port}`);
});