Если вы отметите программу C # как x86 (а не какой-либо CPU), то она увидит HKEY_LOCAL_MACHINE\Software\Wow6432Node\App
как HKEY_LOCAL_MACHINE\Software\App\
.
Программа .NET для любого процессора будет работать как 64-разрядная процесс, если установлен 64-разрядный .NET. 32-разрядный реестр находится под Wow6432Node
для 64-разрядных программ.
Как насчет обеспечения прослушивания http-объекта после загрузки файла в память:
// server.js
var myMap = {};
function readCsv(cb){
fs.createReadStream('filename.csv')
.pipe(csv())
.on('data', (row) => {
// Build javascript object
myMap[row['key']] = row['value'];
})
.on('end', () => {
console.log('Done.');
cb();
});
}
var app = express();
exports = Object.freeze({
server: http.createServer(app)
init(){
readCsv(() => {
this.server.listen(80)
})
}
})
Что-то в этом роде.
Вы также можете использовать Обещание
// server.js
var myMap = {};
function readCsv(){
return new Promise((request, reject) => {
fs.createReadStream('filename.csv')
.pipe(csv())
.on('data', (row) => {
// Build javascript object
myMap[row['key']] = row['value'];
})
.on('end', () => {
console.log('Done.');
resolve();
})
.on('error', reject)
})
}
var app = express();
exports = Object.freeze({
server: http.createServer(app)
init(){
return readCsv().then(() => {
this.server.listen(80)
})
}
})
Для достижения обеих ваших целей вы можете включить код в файл app.js. App.js запускается только при запуске экспресс-сервера. Не обновляется при обновлении страницы. Вы можете запустить app.listen после окончания чтения.
var myMap = {};
fs.createReadStream('filename.csv')
.pipe(csv())
.on('data', (row) => {
// Build javascript object
myMap[row['key']] = row['value'];
})
.on('end', () => {
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
});
Однако, поскольку я не думаю, что у вас будет много данных, лучше использовать синхронные (блокирующие) методы как для парсера csv, так и для чтения файлов. Это просто облегчает понимание. Я использую csv-parse ниже.
const express = require('express')
const fs = require('fs')
const parse = require('csv-parse/lib/sync')
const app = express()
const port = 3000
/* In this example assume myMap will be
/ `
/ "key_1","key_2"
/ "value 1","value 2"
/ `
*/
var myMap = fs.readFileSync('sample.csv', 'utf8');
/* parsing the csv will return:
/ [Object {key_1: "value 1", key_2: "value 2"}]
*/
const records = parse(myMap, {
columns: true,
skip_empty_lines: true
})
app.get('/', (req, res) => res.send('Hello World!' + records[0].key_1))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))